0


网络-HTTP

文章目录

1.HTTP

HTTP是浏览器中最重要且使用最多的协议,它不仅是浏览器与服务端的通信语言,更是互联网的基石。

1.1简介

HTTP(超文本传输协议)是利用网络传输层TCP协议,在两台主机(通常是Web服务器和客户端)之间传输信息的网络应用层协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送响应信息给客户端。

1.2基于TCP 的三次握手🤝与四次挥手🙋‍♂

TCP 在传输之前会进行三次沟通,一般称为“三次握手”,传完数据断开的时候要进行四次沟通,一般
称为“四次挥手”。

一个完整的HTTP是包含请求与响应的,所以需要通过TCP来创建连接通道。
一个TCP通道可以通过多个HTTP请求。
一般来讲需要通过三次握手来确认连接过程,规避因为网络原因从而产生的资源消耗,从而创建TCP连接。

三次握手四次挥手
三次握手

第一次握手: 客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手: 服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手: 客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。
四次挥手

与建立连接的“三次握手”类似,断开一个TCP连接则需要“四次握手”。

第一次挥手: 主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。

第二次挥手: 被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。

第三次挥手: 被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。

第四次挥手: 主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

2.HTTP发展史

随着浏览器的不断更新迭代,HTTP为了适应技术的更新也在不断进化,学习HTTP的最佳途径就是从浏览器的发展视角来了解HTTP的演进。
即将完成使命的HTTP/1、正在向我们走来的HTTP/2、未来的HTTP/3。
HTTP发展史

2.1HTTP版本

各版本对比
HTTP版本

2.2HTTP/1.0与HTTP/1.1的区别

长连接

最主要的区别就是:HTTP1.1默认是持久化连接!即一个 TCP 默认不关闭,可以被多个请求复用。
在HTTP1.0默认是短连接:简单来说就是:每次与服务器交互,都需要新开一个连接!

管道机制(pipelining),一个 TCP 连接,可以同时发送多个请求。(响应的顺序必须和请求的顺序一致,因此不常用)

缓存处理(If-Modified-Since, If-None-Match)

带宽优化,请求头中引入了 range 字段,支持断点续传

错误通知的管理(状态码)

Host头处理

2.3HTTP/1.1与HTTP/2的区别

新的二进制格式(Binary Format)

多路复用(MultiPlexing),即连接共享。解决了线头阻塞的问题。(Head of line blocking)简称:HOLB。

头部压缩(header)

服务端推送(server push)

3.HTTPS

3.1概述

HTTPS是以安全为目标的 HTTP 通道,是 HTTP 的安全版。HTTPS 的安全基础是 SSL。SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。

3.2原理

SSL 协议可分为两层:

SSL 记录协议(SSL Record Protocol),它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL 握手协议(SSL Handshake Protocol),它建立在 SSL 记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

HTTPS采用对称加密和非对称加密两者并用的混合加密机制
加粗样式公钥加密、私钥解密——用于加密。
私钥签名、公钥验签——用于签名。

HTTPS将对称加密与非对称加密结合起来,充分利用两者各自的优势。在交换密钥环节使用非对称加密方式,之后的建立通信交换报文阶段则使用对称加密方式。

具体做法是:发送密文的一方使用公钥进行加密处理“密钥”,对方收到被加密的信息后,再使用自己的私有密钥进行解密。这样可以确保交换的密钥是安全的前提下,之后使用对称加密方式进行通信交换报文。

https加密


推荐阅读
深入理解https,对称加密和非对称加密


3.3HTTPS的特点

优点

使用 HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。
HTTPS 协议是由SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 HTTP 协议安全,可防止数据在传输过程中不被窃取、修改,确保数据的完整性。
HTTPS 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

缺点

HTTPS 协议握手阶段比较费时,会使页面的加载时间延长近。
HTTPS 连接缓存不如 HTTP 高效,会增加数据开销,甚至已有的安全措施也会因此而受到影响。
HTTPS 协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用。
SSL 证书通常需要绑定 IP,不能在同一 IP 上绑定多个域名,IPv4 资源不可能支撑这个消耗。
部署 HTTPS 后,因为 HTTPS 协议的工作要增加额外的计算资源消耗,例如 SSL 协议加密算法和 SSL 交互次数将占用一定的计算资源和服务器成本。
HTTPS 协议的加密范围也比较有限。最关键的,SSL 证书的信用链体系并不安全,特别是在某些国家可以控制 CA 根证书的情况下,中间人攻击一样可行。

3.4HTTPS与HTTP的区别

https区别哦
安全性:HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。
HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。
(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)

消耗资源:和HTTP相比,HTTPS通信会因为加解密的处理消耗更多的CPU和内存资源。

开销:HTTPS协议需要申请证书,这类证书通常需要向认证机构申请或者付费购买,一般免费的证书很少。

端口不同:HTTP与HTTPS的连接方式不同,端口也不同,HTTP端口用的是80,HTTPS端口用的是443。

4.http响应代码

HTTP 响应状态代码指示特定HTTP请求是否已成功完成;响应分共为五类:
信息响应(100–199);
成功响应(200–299);
重定向(300–399);
客户端错误(400–499);
服务器错误 (500–599)。

链接:HTTP状态码


推荐阅读
HTTP发展史,HTTP1.1与HTTP2.0的区别



本文转载自: https://blog.csdn.net/princemilo/article/details/143805713
版权归原作者 真上帝的左手 所有, 如有侵权,请联系我们删除。

“网络-HTTP”的评论:

还没有评论