天天看点

http的连接和断开

@ http的理解

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、请求数据三个部分组成,

请求行包括:请求格式,请求url,请求协议等

请求头包括:

Accept :请求报文可通过一个“Accept”报文头属性告诉服务端 客户端接受什么类型的响应。

例如Accept:text/plain 说明客户端接收文本

Accept-Charset:接收的编码集

Cookie:客户信息

Referer表示这个请求是从哪个URL过来的

详情请看https://en.wikipedia.org/wiki/List_of_HTTP_header_fields

请求数据就是post传的参数

HTTP响应也由三个部分组成,分别是:状态行、消息报头、响应正文。

状态码就是请求返回的结果码:200代表成功,其余代表失败比如404

消息报头和请求头部一样

响应正文就是得到的数据。

http三次握手

http的连接和断开

第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;

第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包

第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

俩次握手行不行

如果俩次握手,主机A无法知道消息是不是由刚才连接的主机发过来的。容易受到中间商攻击。

http断开需要几次握手

四次挥手(断开连接)

第一次: TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。

第二次:服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

第三次:服务器关闭客户端的连接,发送一个FIN给客户端。

第四次:客户端发回ACK报文确认,并将确认序号设置为收到序号加1。

https几次握手

http的连接和断开

在使用HTTPS是需要保证服务端配置正确了对应的安全证书

客户端发送请求到服务端

服务端返回公钥和证书到客户端

客户端接收后会验证证书的安全性,如果通过则会随机生成一个随机数,用公钥对其加密,发送到服务端

服务端接受到这个加密后的随机数后会用私钥对其解密得到真正的随机数,随后用这个随机数当做私钥对需要发送的数据进行对称加密

客户端在接收到加密后的数据使用私钥(即生成的随机值)对数据进行解密并且解析数据呈现结果给客户

SSL加密建立