http相关

http与https的区别:

1.https需要向CA(Certificate Authority证书颁发机构)申请证书

2.http使用的超文本传输协议,数据是明文传输,https是使用了ssl+http,数据为加密传输

3.http端口为80,https是443

4.http是无状态的,https会对传输内容进行加密、验证身份和数据完整性

https请求流程

1.首先服务器会利用非对称加密算法,生成自己的公私钥对

2.服务器将自己的公钥,发送至CA证书颁发机构,利用颁发机构私钥进行加密生成证书

3.客户端请求与服务器建立连接

4.服务器将包含有自己公钥及颁发机构、有效期等信息的证书返回给客户端

5.客户端利用对应CA机构的公钥对证书进行解密,获取服务器公钥

6.客户端生成对称密钥,利用服务器公钥对其进行加密后,发送给服务器端

7.之后客户端、服务器端利用该对称密钥进行加密通信

http request请求报文和response响应报文组成

request报文由请求行、请求头、请求体三部分组成,如下图所示:

在请求行中包括了三部分:请求的类型 post、get等、请求的url、http协议的版本信息

请求头是以key-value的形式存储的一些数据比较多大概有几十个,如常见的cookie、content-type 即请求体中数据的媒体类型、content-encode 编码信息、User-Agent 浏览器版本信息、Referer 告诉服务器当前请求是从哪里来的、Accept 指定客户端能够接收的内容类型、connection 如何对待长连接等

更多可以看这里  http://tools.jb51.net/table/http_header

请求体中为请求数据即为参数信息

 

response报文也由响应行、响应头和响应体三部分组成

响应行中包括了两部分 协议类型及版本号、响应的状态code及描述 如200 ok 、404 not found、500 Internal Server Error等等

响应头中也包括了一些key-value形式的数据如 Content-type 响应体中数据的媒体类型、Transfer-Encoding文件传输编码、server web服务器软件类型、Date 服务器消息发出时间等

响应体中即为返回数据

参考 https://www.jianshu.com/p/eb3e5ec98a66

 

tcp 三次握手和四次挥手都是发生在传输层的

tcp abort overflow

客户端第一次向服务端发送请求时syn包,服务端向客户端发送syn+ack包,客户端发送ack包到服务端

当客户端第一次发送syn包后,服务端收到请求后会将该连接信息放入半连接队列中,之后当收到ack包时会将其从半连接队列取出,放入全连接队列,此时客户端和服务端才算是建立了连接。如果全连接队列满了的话,就会丢弃ack,按照tcp_abort_on_overflow处理,一段时间后再次发送syn+ack到客户端,让它重新发送ack请求。但如果客户端超时时间比较短的话,客户端就会出现超时异常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值