美文网首页
HTTP与HTTPS

HTTP与HTTPS

作者: 欢西西西 | 来源:发表于2023-03-06 18:16 被阅读0次

一、http1.1

解决了http1.0时代最重要的2大问题:

http1.0 http1.1
每个TCP连接只能发送一个请求,也就是服务器在发送完一个HTTP响应后会断开TCP连接 浏览器默认开启【长连接】,Connection:keep-alive,在一个TCP连接上可以传送多个HTTP请求和响应
【队头阻塞】多个请求无法并行发送,只能排队 【管线化】,可以并行发出请求,并没有根本解决队头阻塞问题,对于请求的响应仍然遵循先进先出的原则

1.1 Connection: keep-alive

image.png image.png

二、http2.0

  • http2.0的协议解析采用二进制格式,而非HTTP1.x的文本格式。
  • 【多路复用】一个TCP连接上可以有多个流,一个请求对应一个流并分配一个唯一标识。为每帧分配一个流标识符,所有流的帧可以混杂在一起,接收方可以通过帧的流标识符知道该帧属于哪个请求,解决队头阻塞问题(流是连接中的一个虚拟信道,可以承载双向消息)

2.1 连接复用

image.png

三、服务端消息推送

  • 轮询
    客户端定时发送请求——频率高容易产生大量无效请求,频率低实时性会变差
  • 长轮询
    客户端发送请求——服务器并不马上返回,而是保持这个连接,等待数据更新后再返回。客户端收到后又马上开启新一轮请求。——这样减少了请求次数,也降低了延迟,但服务端就要保持大量的连接
  • WebSocket
    实现客户端和服务器的长连接,进行双向实时通信。HTTP和WebSocket都是应用层协议,都是基于TCP来传输数据的

四、http请求建立TCP连接时的三次握手

主要是确认双方的发送和接收能力是否正常

image.png

五、释放连接时的四次挥手

客户端:申请断开
服务端:已接收到请求
服务端:可以断开
客户端:好的

六、https

6.1 http的弊端

  • 被窃听
  • 被篡改
  • 被冒充

6.2 ssl/tls加密

image.png
  • 对称加密:接收方和发送方使用同样的加解密方式
  • 非对称加密:数据经过公钥加密就只能使用私钥解密

6.2.1 服务器申请数字证书

image.png
  • 服务器向CA提交自己公钥和身份信息
  • CA用这些信息通过摘要算法生成摘要
  • CA用自己的私钥对摘要进行加密生成数字签名
  • 将身份信息、公钥、数字签名等整合成数字证书颁发给服务器
image.png image.png

6.2.2 客户端验证证书

image.png
  • 客户端收到证书,用CA的公钥(内置在操作系统)对数字签名进行解密,拿到摘要
  • 客户端也用摘要算法(公开)对证书明文生成摘要
  • 2个摘要比对

6.2.3 加密通信

  • 最终通信使用的还是对称加密
  • 之前的非对称加密是为了协商【之后用来对称加密的秘钥】,以保证这个秘钥只有双方知道
a.png

6.3 http与https的区别

- http https
默认端口 80 443
- image.png
- 明文传输 使用tls协议加密传输

七、 http3

将TCP的握手和tls的握手整合在一起

八、 一些常见的请求头和响应头

- 请求头 响应头
缓存相关 if-modified-since / if-none-match last-modifed / etag / cache-control / expires
content相关 Content-Type / Content-Length 一样
content编码方式 accept-encoding: gzip, deflate, br content-encoding: br
cookie cookie set-cookie
跨域相关 Origin Access-Control-Allow-Origin 、 Access-Control-Allow-Methods、Access-Control-Allow-Headers
跨域相关 Access-Control-Allow-Credentials: true(允许客户端携带验证信息,告知浏览器是否可以将对请求的响应暴露给前端 JavaScript 代码)

相关文章

  • http 与 https

    通常来讲,http 效率更高,https 更安全。但是更详细的你可能就不知道了,下面是我总结的一些两者之间的区别。...

  • HTTP与HTTPS

    概述 HTTP是互联网上应用最为广泛的一种网络协议,有名超文本链接协议。我们在开发中请求数据,发送数据都会用到HT...

  • http与https

    作者:forthealllightgithub.com/forthealllight/blog/issues/19...

  • http与https

    安全套接字层(SSL)超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,...

  • HTTP与HTTPS

    https://www.cnblogs.com/by-3ks/articles/4113849.html http...

  • HTTP与HTTPS

    1.http 1)http:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP)...

  • HTTP与HTTPS

    背景: http是超文本传输协议,使用与web浏览器与服务器之间的数据传输,http是由明文的形式将数据传递到服务...

  • HTTP与HTTPS

    Http协议. HTTP协议,超文本传输协议,HTTP是一个无状态的协议。无状态是指客户端(Web浏览器)和服务器...

  • http与https

    来源:https://www.zhihu.com/question/19577317http是超文本传输协议,信息...

  • http与https

    超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何...

网友评论

      本文标题:HTTP与HTTPS

      本文链接:https://www.haomeiwen.com/subject/sasokdtx.html