1.网络的结构(OSI 7层)
1.划分方式有多种,其中osi 7层是国际标准;而五层协议体系结构中无会话层和表示层
2.OSI是Open System Interconnection的缩写,意为开放式系统互联。国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。OSI模型把网络通信的工作分为7层,从下往上分别是: 物理层-->数据链路层-->网络层-->传输层-->会话层-->表示层-->应用层
2.HTTP协议和TCP/IP协议族之间的联系
- 不管是移动客户端还是PC端,访问远程的网络资源经常使用HTTP协议(超文本传输协议【Hypertext Transfer Protocol 】),是Web联网的基础,也是手机联网常用的协议之一,http协议是在网络开发中最常用的协议;访问的是远程的网络资源,格式是http://
- HTTP与HTTPS:
二者使用不同的连接方式,端口也不一样,前者是80,后者是443;
HTTPS即“安全超文本传输协议”,基于HTTP开发,使用安全套接字层(SSL)进行信息交换,是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议;简单说它就是HTTP的安全版
1.HTTP是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。
2.HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”
- HTTP协议是应用层协议,主要解决如何包装数据;而TPC/IP协议是传输层协议,主要解决数据如何在网络中传输
解释二者联系:
1.“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,所以想要使传输的数据有意义,则必须使用到应用层协议”
2.TCP/IP是无论上层让他传啥数据,他都通过与IP协议的操作,把这些东西分段,然后输送,同时保证在这个过程中,数据不会丢,如果丢了一块,他还得想办法重新传一次,这就是TCP/IP的意义;而HTTP主要是用来访问网页的,比TCP更上层的协议
3.可以认为TCP/IP协议就是搬运工,保证搬动的东西不被损坏; HTTP是做业务的,用来决定要不要搬运,以及如何搬运,从哪去搬运。
4.Http协议是建立在TCP协议之上的一种应用。由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求
3.Http协议的作用
规定客户端和服务器之间的数据传输格式
让客户端和服务器能有效地进行数据沟通
- 完整的http通信过程,可以分为2大步骤:
(1)请求 :客户端向服务器索要数据
(2)响应:服务器返回客户端相应的数据
- 发送Http请求的方法
(1)在HTTP/1.1协议中,定义了8种发送http请求的方法
(2)最常用的是GET和POST(实际上GET和POST都能办到增删改查)
- 3.1简单认识下GET 和 POST
3.1.1二者对比(主要区别表现在数据传递上):
GET:
1).在请求URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开
2).由于浏览器和服务器对URL长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1KB
POST:
1).发给服务器的参数全部放在请求体中
2).理论上,POST传递的数据量没有限制
3.1.2二者选择
1).如果要传递大量数据,比如文件上传,只能用POST请求
2).GET的安全性比POST要差些,如果包含机密\敏感信息,建议用POST
3).p如果仅仅是索取数据(数据查询),建议使用GET
4).p如果是增加、修改、删除数据,建议使用POST
-
3.2 Http通信过程
3.TCP/IP与UDP/IP区别
TCP/IP的三次握手(形象解释):
1.主机A告诉主机B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我
2.主机B也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了;你要用哪个序列号作为起始数据段来回应我
3.主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B 的数据段:"我已收到回复,我现在要开始传输实际数据了
补充:3次握手的特点
* 握手过程中传送的包里不包含数据(这个数据是应用层的数据)
* 三次握手完毕后,客户端与服务器才正式开始传送数据
* 理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去
* 断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”
(过程就不细写了,就是服务器和客户端交互,最终确定断开)
1.TCP/IP:是传输控制协议;UDP是用户数据报协议(UDP程序结构较简单);均工作在传输层
2.TCP是面向连接的,传输是可靠的 (确认收发);而UDP是面向非链接的,传输是不可靠的 (对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发,因为不必进行收发数据的确认,所以UDP的实时性更好)
3.由于上面2的原因-->TCP应用于传输大量的数据,速度慢;UDP传输少量的数据,速度快
4.另外:程序员可以手动对UDP的数据收发进行验证,比如发送方对每个数据包进行编号然后由接收方进行验证啊什么的,提高效率
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证
4.TCP/IP与Socket(套接字)
1.套接字概念
套接字(socket):源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字;其用于标识客户端请求的服务器和服务。它是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。
2.二者之间的联系
Socket 实际上是对TCP/IP协议的封装,其本身并不是协议,而是一个调用接口(API);通过Socket,我们才能使用TCP/IP协议。但Socket跟TCP/IP协议实际也没有必然的联系;Socket编程接口在设计的时候,就希望也能适应其他的网络协议;所以说,Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口,比如create、listen、connect、accept、send、read和write等等。
3.TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。就像操作系统会提供标准的编程接口,比如Win32编程接口一样,TCP/IP也必须对外提供编程接口,这就是Socket编程接口;啊噢,原来就是这么回事滴😂
4.利用Socket建立网络连接的步骤
建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket ;套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。
1、服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,
实时监控网络状态,等待客户端的连接请求。
2、客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为
此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址
和端口号,然后就向服务器端套接字提出连接请求。
3、连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应
客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户
端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其
他客户端套接字的连接请求。
5.直接上图瞅一眼呗
以下图片将说明IP协议,TCP协议,DNS协议与HTTP协议的关系
1401034-0c9795373f536429.jpg6.相关联想
6.1 URL
1.什么是URL
(1)URL的全称是UniformResource Locator(统一资源定位符)
(2)URL的基本格式 =协议://主机地址/路径
(3)协议:不同的协议,代表着不同的资源查找方式、资源传输方式
(4)主机地址:存放资源的主机(服务器)的IP地址(域名)
(5)资源在主机(服务器)中的具体位置
2.URL中常见的协议
(1)HTTP : 超文本传输协议, 格式是 http://
(2)file :访问的是本地计算机上的资源,格式是 file://(不用加主机地址)
(3)mailto:访问的是电子邮件地址,格式是 mailto:
(4)FTP:访问的是共享主机的文件资源,格式是 ftp://
网友评论