HTTP请求响应机制

HTTP请求响应机制

  • 前言
  • HTTP请求机制详解
    • 客户端发送请求
    • 服务端处理请求
    • 服务器端生成响应请求
    • 服务器发送响应
    • 客户端处理响应
    • 请求-响应周期结束
  • HTTP的无状态协议特性
  • HTTP的超时机制
  • 结合以上两点举个例子
  • HTTP的后续发展
  • 最后总结

在这里插入图片描述

前言

HTTP(HyperText Transfer Protocol,超文本传输协议),它是一种用于从网络服务器传输超文本到本地客户端(浏览器)的传输协议。

例子参考书籍:《Java Web从入门到项目实践(超值版)》

HTTP请求机制详解

客户端发送请求

HTTP请求响应机制_第1张图片

1. 两者建立TCP连接,客户端通过向服务器发送请求消息来启动 HTTP 请求。
2. 请求消息由请求行、标头和可选的消息正文组成。
3. 请求行包含指示所需操作、目标 URL 和 HTTP 版本的 HTTP 方法(如 GET、POST、PUT、DELETE)。
4. 标头提供有关请求的其他信息,例如客户端的用户代理、接受的内容类型、Cookie 等。
5. 消息正文(如果存在)携带表单参数或有效负载等数据。

服务端处理请求

HTTP请求响应机制_第2张图片

1. 服务器从客户端接收 HTTP 请求消息。
2. 服务器根据请求行、标头和消息正文中提供的信息处理请求。

服务器端生成响应请求

HTTP请求响应机制_第3张图片
1. 处理请求后,服务器会生成 HTTP 响应消息。
2. 响应消息由状态行、标头和可选的消息正文组成。
3. 状态行包含 HTTP 版本、状态代码和状态消息。状态代码指示请求的结果,例如 200 正常、404 未找到、500 内部服务器错误等。
4. 标头包含有关响应的其他信息,例如内容类型、内容长度、缓存指令等。
5. 消息正文携带实际的响应数据,例如 HTML 内容、JSON 数据或文件附件。

服务器发送响应

HTTP请求响应机制_第4张图片

1. 服务器将生成的响应消息发送回客户端。
2. 客户端接收响应并根据状态代码、标头和消息正文对其进行处理。

客户端处理响应

HTTP请求响应机制_第5张图片

1. 客户端读取响应状态行以确定请求是成功还是失败。
2. 客户端检查响应标头以获取其他信息。
3. 如果响应包含消息正文,则客户端会相应地读取和解释数据。

请求-响应周期结束

HTTP请求响应机制_第6张图片

1. 处理完响应后,请求-响应周期即告完成。
2. 客户端和服务器可以根据需要启动后续 HTTP 请求和响应。
3. 关闭连接,客户端和服务器端都可以通过关闭套接字来结束TCP/IP连接。

HTTP的无状态协议特性

在这里插入图片描述

HTTP是无状态协议,这意味着每个HTTP请求与响应之间是独立的,服务器不会存储有关客户端的任何信息。

在每个请求之间,服务器不会维持客户端的状态。这也被称为"短连接"或"非持久连接"。每个请求都需要在连接建立后进行完整的认证和身份验证,而服务器在每个请求后都要处理完整的请求-响应过程。这使得服务器更加轻量级且容易扩展,因为它无需跟踪客户端状态或维护大量连接。

如果HTTP是有状态的,服务器将需要多次确认客户端的状态数据,这样会导致通信速度变慢并消耗更多的资源,因此HTTP的无状态是它成为互联网标准协议的一个重要原因。

HTTP的超时机制

HTTP是依赖于瞬间的请求处理,但我们都知道网络传输都是有一定延迟性的,这是现有技术无法改变的客观事实。但是HTTP内置了一种超时机制,这种超时机制允许消息在传递时间方面上具有一定的灵活性。

超时机制:HTTP的超时机制指的是在进行HTTP通信时,如果在一定时间内没有得到期望的请求消息返回消息,则会触发超时操作。超时机制的目的是限制等待响应的时间,并处理可能的异常情况。

注意:超时机制是一种处理请求等待时间过长的机制,但并不能保证请求一定会在超时时间内完成。

结合以上两点举个例子

就比如,我们使用浏览器访问某个网站,这个网站使用HTTP通信,网站需要我们填写一些表单信息,我们按照要求去做了,并接下来点击了提交按钮,但由于某种原因,过了几秒,表单没有发出去,也就是请求或失败,浏览器会显示错误信息界面,同时表单清空(不考虑网站做了特殊机制来防止表单清空)。

这就是HTTP的无状态特性和超时机制的体现,当HTTP的请求和响应信息在规定的时间内没有发送或者传递成功,不保存任何已传递的信息。即使你没有提交表单成功,HTTP不保存任何表单信息。因此客户端每次都需要更新信息(重新填写表单)都必须重新向服务器发起请求,客户端收到服务端的发出的响应,才能刷新客户端的界面。

HTTP的后续发展

由于HTTP传输的数据是未加密的,甚至能说就是明文传输,这在安全性上是一个巨大缺陷。之后网景公司又设计了SSL协议用来对HTTP传输数据进行加密。这也就是后面广泛使用的HTTPS。
HTTP请求响应机制_第7张图片

最后总结

简单来说,HTTP请求响应机制就是一种请求消息和响应信息的一来一回,通过这种机制,客户端和服务器能够相互通信,并能够传递数据和其他信息。

勘误:在之前我将客户端和浏览器搞混了,因为web应用程序是有C/S机构和B/S结构的,我是直接把客户端当成客户使用的电脑端了。
在这里插入图片描述

你可能感兴趣的:(http,网络协议,网络,学习,笔记,java)