HTTP:HyperText Transfer Protocol 超文本传输协议
HTTPS:HTTP基于SSL及其继任者TLS的安全协议
SMTP:Simple Mail Transfer Protocol
SSL:Secure Socket Layer
TLS:Transport Layer Security
TCP:Transmission Control Protocol
UDP:User Datagram Protocol
IP:Internet Protocol
TCP
是一种面向连接的、可靠的、基于字节流的传输层通信协议。当应用层向TCP层发送用于网间传输的用8位字节表示的数据流时,TCP把数据流分割成适当长度的报文段,之后TCP层把数据传给IP层,由它通过网络将包传送给接受实体的TCP层。
特性:
有序性:分割的包有序号
正确性:有checksum函数检验数据
可靠性:超时重传、发送错误时重发
可控性:采用滑动窗口协议和拥塞控制算法使传输速度达到合理值
UDP
是一种无连接的传输层协议,提供面向事务的简单的不可靠信息传送服务。UDP信息包标题只有8个字节,相对于TCP的20个字节信息包,开销小,所以更快速、适合轻量级
特性:
随发随收无需连接、非可靠性、无拥塞控制算法控制收发速率、报文既不拆分也不合并
TCP/IP 网络分层:
应用层(网络应用开发重点):Application Layer, 为用户的进程直接提供服务,负责
发送、接收什么数据
如何解释数据
如何呈现数据
如何加密数据
传输层(了解其原理):Transport Layer,为两个主机的不同端口之间的通信提供服务
port 是一种在同一主机内的不同通道之间进行寻址的方式
TCP提供可靠的有序传输
UDP提供非可靠的传输
网络层(了解其概念):Network Layer ,为两个主机之间提供通信服务
定义了数据如何被封装为传送包
定义了不同主机之间的寻址方式
主要由IP组成,辅以ICMP、IGMP等路由协议
接口层(处理物理细节,软件开发无需了解):Link Layer,负责相邻物理设备之间的信息传输
概念:
IP地址:网络层概念,是互联网上的主机在网络上具有的逻辑地址,分为IPv4(如127.0.0.0)、IPv6
域名:Domain Name,应用层概念,便于人们记忆的服务器地址
URI:Uniform Resource Identifier 统一资源标识符
URL:Uniform Resource Locator 统一资源定位符,是URI的子集
URN:Universal Resource Name 通用资源名称
URL的标准形式: [协议]://[主机]:[端口]/[路径]?[参数]
C/S架构:Client/Server
B/S架构:Browser/Server 使用web浏览器作为客户端的应用软件
B /S特点:
便于部署、维护和升级
跨平台、开放,对客户端要求低
对安全性要求高
HTTP流程:C端建立TCP连接、发送HTTP请求、S端返回HTTP结果、C端关闭TCP连接
HTTP消息结构:request、response,分别有消息头和消息体
常用头字段和常用错误代码
1XX:等待信息
2XX:处理成功
3XX:重定向
4XX:客户端请求错误
5XX:服务端处理错误
三次握手四次挥手
三握:客户端与服务器建立连接时
Client ——> 发送SYN包,进入SYN_SENT状态 ——> Server
Client <—— 发送SYN+ACK包,进入SYN_RECV状态 <—— Server
Client ——> 发送ACK包,双方进入Established状态 ——> Server
SYN:synchronous
ACK:acknowledgement
类比记忆:
现有C和S同学,C同学想与S同学做好朋友,先借了S同学一本SYN的书
S同学看完之后,还给C同学这本SYN的书,并同时借给C同学一本ACK的书
C同学看完后,也还给了S这本ACK的书,这时两人建立了友谊,相互存在连接关系
四挥:
Client ——> 发送一个FIN报文 ——> Server
Client <—— 发送ACK序号,同时通知自己相应的应用程序做清理工作 <—— Server
Client <—— 清理工作做完后,发送FIN报文 <—— Server
Client ——> 发送ACK序号,表示彻底释放 ——> Server
FIN:finished
类比记忆:
现有房东C与租客S,C发了一条FIN短信,说要交房租了
S工资推迟发了,先打个ACK欠条给C,说晚点给,并催公司财务快点发工资
工资发下来了,S回复FIN短信
C表示知晓,欠条返还给S,表示两清