HTTP协议知识点记录

2020-03-06  本文已影响0人  m1Ku

HTTP协议是计算机网络中两台计算机通信所必须遵守的规定或规则,是一种通信协议,它允许将HTML从服务器传送到客户端的浏览器。

特点

HTTP报文

请求报文

响应报文

头信息和主体信息之间有一个空行。
HTTP目前一般常用的是HTTP1.1协议。

常用的请求方法:

GET和POST方法的区别

状态码和状态描述

头部字段

请求和响应都需要头部字段,它起到传递额外重要信息的作用。

请求头部字段

响应头部字段

实体头部字段

请求和响应中实体所使用的头部字段

HTTP缓存控制

这两对请求头和响应头配合可以实现缓存,客户端请求数据时带上这两个头部字段,服务端判断如果该时间后没有修改数据或者ETag值没有发生改变,则服务端返回304,客户端使用缓存即可。

HTTP持久连接

初期的HTTP协议,每进行一次HTTP请求就要断开一次TCP连接,这样就造成了无畏的TCP连接和断开,增加了通信量的开销。

HTTP1.1时,实现了HTTP的持久连接,即建立一次TCP连接可以进行多次HTTP请求,只要任意一端没有提出断开连接,TCP会一直保持连接。这样做可以减少TCP建立和断开的开销,提高HTTP请求和响应速度。HTTP1.1中所有连接默认是持久连接的。

Cookie状态管理

由于HTTP是无状态的,服务器就无法根据之前的状态对本次请求进行处理。所以加入了Cookie机制,当客户端第一次请求时,服务端会返回一个Set-Cookie的头部字段通知客户端保存Cookie信息,客户端下次请求时会在报文中添加头部字段Cookie,发送给服务端,这样服务端就可以识别是哪个客户了。

HTTPS

使用HTTP进行通信时可能存在信息窃听或身份伪装等安全问题。

HTTP的不足

HTTPS定义

添加了加密以及认证机制的HTTP称为HTTPS。

HTTPS = HTTP + 加密 + 认证 + 完整性保护

加密

HTTPS加密认证过程

为了解决中间人返回假公钥的问题,这里引入CA认证,服务器不再给客户端直接返回公钥,而是将自己的公钥给CA认证机构,CA认证机构用自己的私钥将服务器的公钥加密为证书,这时客户端会向服务器请求证书,服务器返回证书后,客户端只需要使用CA机构的公钥就可以将证书解密得到服务器的公钥,而CA机构的公钥一般都是内置在浏览器客户端中的。经过上面过程客户端得到的公钥是真实无误的,接下来就通过非对称加密与服务器协商秘钥,再得到秘钥后客户端和服务器就进行对称加密通信了。

TCP/IP协议

把与互联网相关联的协议集合起来总称为TCP/IP协议。

分层

TCP连接的三次握手

TCP三次握手建立连接.png

名词解释

SYN:同步位 请求建立连接

seq:序列号 每个报文都有一个seq字段

ACK:确认位 1代表报文是有效的

ack :确认位的值

建立连接过程

TCP断开的四次挥手

TCP四次挥手断开连接.png

名词解释

FIN:终止位 期望断开连接

断开连接过程

注:第二次和第三次挥手之间,服务器可能还会给客户端发送数据。

常见问题

上一篇下一篇

猜你喜欢

热点阅读