http://www.XXX.com 是个URL,叫作统一资源定位符。
HTTP请求的准备:
浏览器首先会根据域名,通过DNS协议解析出Ip地址。然后由于HTTP协议是基于TCP连接的,所以需要先建立TCP连接,之后发送请求。请求数据包的格式如下:
上述的方法中有几种类型:
**【1】GET。**就是去服务器获取一定的资源。
**【2】POST。**主动告诉服务器一些信息,而不是获取资源。
**【3】PUT。**是向指定的位置上传最新的资源内容。(post往往是创建资源,而put是修改资源)
**【4】DELETE。**删除资源。
首部字段中,也包含比较重要的内容,主要有包含接收端的接受的字符集,以及和缓存控制相关信息。
HTTP请求的发送:
HTTP协议是基于TCP协议的,所以它使用面向连接的方式发送请求,通过stream二进制流的方式传给对方。当然,到了TCP层,它会把二进制流变成一个的报文段发送给服务器。之后就会一层一层的包装,加上各个层的头部和尾部,然后发送出去。
HTTP请求的返回:
HTTP 2.0 版本
**【1】头部压缩。**HTTP 2.0会对HTTP的头进行一定的压缩,将原来每次都要携带的大量key value在两端建立一个索引表,对相同的头只发送索引表中的索引。
【2】分帧。
**【3】二进制编码。**HTTP 2.0协议将一个TCP的连接中,切分成多个流,每个流都有自己的ID,而且流可以是客户端发往服务端,也可以是服务端发往客户端。它其实只是一个虚拟的通道。流是有优先级的。HTTP 2.0还将所有的传输信息分割为更小的消息和帧,并对它们采用二进制格式编码。常见的帧有Header帧,用于传输Header内容,并且会开启一个新的流。再就是Data帧,用来传输正文实体。多个Data帧属于同一个流。
QUIC协议
此协议是基于UDP协议,通过自定的机制实现类似于TCP协议的机制。进一步提升传输的性能。
【1】自定义连接机制。
【2】自定义重传机制。
【3】无阻塞的多路复用。
【4】自定义流量控制。
关于加密保护:
加密可以分为对称和非对称加密。对称加密效率高,但是无法解决密钥的传输的问题。非对称加密能解决此问题,但是效率低。
非对称加密可以通过证书和权威结构来验证公钥的合法性。
HTTPS是综合了对称加密和非对称加密算法的HTTP协议。既保证传输安全,也保证传输效率。