吃透HTTP(超文本传输协议)
HTTP是什么?
HTTP(超文本传输协议)是一套在网络上传输文件(如文本、图像、声音、视频和其他多媒体文件)的规则。 一旦用户打开他们的网页浏览器,他们就间接地使用HTTP。 HTTP是一种运行在TCP/IP协议组之上的应用协议,这些协议构成了互联网的基础。 HTTP的最新版本是HTTP/2,发布于2015年5月。 它是它的前身HTTP 1.1的一个替代方案,但它并没有过时。
HTTP是如何工作的
通过HTTP协议,资源在internet上的客户端设备和服务器之间交换。 客户端设备向服务器发送加载网页所需的资源请求; 服务器将响应发送回客户机以完成请求。 请求和响应共享子文档——例如关于图像、文本、文本布局等的数据——这些数据由客户端web浏览器拼接在一起,以显示完整的web页面文件。
除了它可以服务的网页文件外,web服务器还包含一个HTTP守护进程,这是一个等待HTTP请求并在它们到达时处理它们的程序。 web浏览器是向服务器发送请求的HTTP客户端。 当浏览器用户通过键入URL或单击超文本链接“打开”web文件来输入文件请求时,浏览器构建一个HTTP请求并将其发送到URL所指示的Internet协议地址(IP地址)。 目标服务器中的HTTP守护进程接收请求并发送回所请求的文件或与该请求相关的文件。
一个用户想要访问juejin.com。 用户输入网址,计算机就会向承载该网址的服务器发送“GET”请求。 该GET请求使用HTTP发送,并告诉juejin服务器用户正在寻找用于构造登录页面并提供其外观的HTML(超文本标记语言)代码。 登录页面的文本包含在HTML响应中,但是页面的其他部分——尤其是图像和视频——由单独的HTTP请求和响应请求。 发出的请求越多(例如,调用一个有大量图像的页面),服务器响应这些请求和用户系统加载页面的时间就越长。
当这些请求/响应对被发送时,它们使用TCP/IP在小数据包中减少和传输信息,这些数据包由二进制序列1和0组成。 这些数据包通过电线、光缆和无线网络进行物理传输。
服务器和客户机用于彼此共享数据的请求和响应由ASCII码组成。 请求说明客户端正在从服务器寻求什么信息; 响应包含客户端浏览器将转换为网页的代码。
HTTP和HTTPS
HTTPS是使用安全套接字层(SSL)或传输层安全(TLS)作为常规HTTP应用程序层下的子层。 HTTPS对用户的HTTP页面请求以及web服务器返回的页面进行加密和解密。 它还可以防止窃听和中间人(MitM)攻击。 HTTPS是由Netscape开发的。 从HTTP迁移到HTTPS被认为是有益的,因为它提供了一个额外的安全性和信任层。
HTTP请求和响应
客户机和服务器之间的每一次交互都称为消息。 HTTP消息是请求或响应。 客户端设备向服务器提交HTTP请求,服务器通过向客户端发送HTTP响应进行响应。
HTTP请求这是指客户机设备(如internet浏览器)向服务器请求加载网站所需的信息。 该请求为服务器提供所需的信息,以调整其对客户机设备的响应。 每个HTTP请求都包含经过编码的数据,其信息如下:
-
HTTP的具体版本 HTTP和HTTP/2是两个版本。
-
一个URL这指向网络上的资源。
-
HTTP方法这表明请求在其响应中期望从服务器接收到的特定操作。
-
HTTP请求报头这包括数据,如什么类型的浏览器正在使用和什么数据的请求是寻求从服务器。 它还可以包括cookies,它显示先前从处理请求的服务器发送的信息。
-
HTTP正文这是可选的信息,服务器需要从请求,如用户表单——用户名/密码登录,短响应和文件上传——正在提交到网站。
HTTP响应 HTTP响应消息是客户端设备从web服务器接收到的数据。 顾名思义,响应是服务器对HTTP请求的响应。 HTTP响应中包含的信息根据服务器从请求接收到的上下文进行了调整。 HTTP响应通常包括以下数据:
-
HTTP状态码表示请求客户端设备的状态。 响应可能指示成功、信息响应、重定向或服务器或客户端上的错误。
-
HTTP响应头用于发送关于服务器和请求资源的信息。
-
HTTP主体(可选) 如果一个请求是成功的,这包含请求的数据在HTML代码的形式,这是翻译成一个网页由客户端浏览器。
HTTP状态代码
在响应HTTP请求时,服务器通常发出响应代码,表明请求正在处理、请求中存在错误或请求正在被重定向。 常见的响应代码包括:
-
200 OK这意味着请求(例如GET或POST)已经工作并正在被执行。
-
300 永久移动此响应代码意味着所请求资源的URL已被永久更改。
-
401 未经授权客户端或向服务器发出请求的用户尚未经过身份验证。
-
403 禁止客户端的身份是已知的,但尚未获得访问授权。
-
404 未找到这是最常见的错误代码。 这意味着无法识别URL或该位置的资源不存在。
-
500 内部服务器错误服务器遇到了不知道如何处理的情况。
代理HTTP
代理,或代理服务器,是应用程序层服务器,计算机或其他机器之间的客户端设备和服务器。 代理在客户机和服务器之间中继HTTP请求和响应。 通常,每个客户机-服务器交互都有一个或多个代理。
代理可以是透明的或不透明的。 透明代理不修改客户机的请求,而是将其以原始形式发送到服务器。 非透明代理将在一定程度上修改客户机的请求。 非透明代理可用于其他服务,通常用于提高服务器的检索速度。
Web开发人员可以使用代理实现以下目的 :
-
缓存缓存服务器可以在本地保存网页或其他互联网内容,以更快的内容检索和减少对网站带宽的需求。
-
身份验证控制对应用程序和在线信息的访问权限。
-
记录历史数据的存储,例如向服务器发送请求的客户端的IP地址。
-
网络过滤控制对可能危及安全或包含不适当内容的网页的访问。
-
负载均衡客户端到服务器的请求可以由多个服务器处理,而不是只有一个。
最后
如果对您有帮助,希望能给个👍评论/收藏/三连!
博主为人老实,无偿解答问题哦❤
- 点赞
- 收藏
- 关注作者
评论(0)