HTTP

超文本传输协议
http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使得开发和部署是那么的直截了当。

每次请求资源,都会进行一次http链接。

保持链接,网页一次性加载完页面资源。资源加载之后再断开

强制https,双向通信,多路复用,一个连接内可以传输很多条数据,比如一个连接加载多个js,多个请求。

RFC

http协议的标准版本
https: RFC2818
http1.1: RFC 2016

https需要申请证书,常用的证书有“赛门铁克”,阿里云提供免费版证书,只支持一个域名。

一次HTTP链接必定经过三次握手和四次挥手

  1. 三次握手
  1. 四次挥手

请求 request

发送的内容叫消息,分为消息头和消息体

响应 response

响应的内容叫消息,分为消息头和消息体

消息头

消息体

GET是在头里面传输,POST在体里面传输,所以GET数据比较小,POST数据可以传很大

http七层交互参考模型

  1. 物理层, 物理学家关心的问题,通信工程,电流电压,硬件。
  2. 链路层,内网寻址,管理内网之间的信息传递 ARP、ICMP
  3. 网络层,外网寻址,网络之间的信息传递 IP
  4. 传输层,通信的稳定性,数据不能弄丢,检查篡改,顺序 TCP
  5. 表现层,统一各种网络结构,被传输层取代了
  6. 会话层,希望可以记录状态,被应用层替代。
  7. 应用层,应用细节,http,FTP, SMTP, POP3

也有人将http分为分为五层模型。

  1. 物理层
  2. 链路层
  3. 网络层
  4. 传输层
  5. 应用层

http是无状态的协议,意思是每次都是全新的,陌生的。服务无法区分哪些链接是同一个人。解决此问题可使用session或token,本文不做讨论。

http基于tcp + ip。

TCP:传输控制协议

  1. 丢失重传,保证达到
  2. 错误重发,保证质量
  3. 保证顺序

和TCP对应的协议叫UDP,用户数据报协议

  1. 不保证到达
  2. 不保证质量
  3. 不保证顺序
    对质量没有绝对要求,对延迟有很高要求,比如,直播,IP电话。

SSL