HTTP 协议(Ⅲ)

发布于:2025-02-23 ⋅ 阅读:(14) ⋅ 点赞:(0)

目录

一、HTTP 协议概念

二、无状态协议

三、HTTP1.0 & HTTP1.1

 四、请求协议和响应协议

五、请求协议

1.浏览器监视请求和响应

2. HTTP请求

2.1 请求的结构

2.2 GET请求

2.3 POST请求

3. HTTP响应

3.1 响应的结构

3.2 常见响应头字段

3.3 常见状态码

4. 请求和响应的总结


HTTP协议是客户端与服务器通信的“语言”,规定了请求和响应的格式与规则。服务器是HTTP协议的执行者,接收客户端的HTTP请求,处理后返回HTTP响应。两者的关系是:HTTP协议定义了交互方式,服务器是实现和响应协议的主体。

一、HTTP 协议概念

HTTP,即超文本传输协议。所有浏览器都可以发出http协议。

协议:就是规定的文本格式!例如写本书也要有格式,写总结也有格式。当然客户端发 送请求也要有格式,这个格式是已经约定的格式,所以服务器端按请求格式来获取请求信息, 然后服务器端再按照响应格式来响应,当然客户端还要按响应的格式来解析。

二、无状态协议

HTTP 是无状态协议,必须必须理解这一点!!!

所谓无状态,就是客户端发送一个请求,服务器返回一个响应,然后就断开连接了

无状态协议的好处,当然是效率高了,用户连接一下就断开,当用户再次发送请求时, 再连接,然后在响应之后再次断开。如果用户在服务器上找到了自己想看的小说,那么服务器只是把小说的内容(html)发送给用户的浏览器,然后用户的浏览器显示已经发送到本地的html,其实这时已经与服务器断开连接了。用户可能会看很久,但这不会占用服务器 的任何资源!

即实现了随用随断开。

三、HTTP1.0 & HTTP1.1

特性 HTTP/1.0 HTTP/1.1
连接方式 默认非持久连接,每次请求后关闭连接 默认持久连接(Keep-Alive),支持多个请求/响应
Host 头 不支持 Host 头,无法区分同一 IP 上的多个域名 支持 Host 头,支持虚拟主机
响应头 响应头较简单,功能有限 增加了更多响应头字段(如 Content-LengthTransfer-Encoding),支持分块传输
缓存机制 缓存依赖于 Expires 头,机制简单 引入 Cache-Control,支持强缓存和协商缓存
错误处理 状态码较少,错误处理简单 增加更多状态码,提供更详细的错误信息
性能优化 性能较差,每次请求都需要建立和关闭连接 性能提升,持久连接减少连接开销
应用场景 已基本被 HTTP/1.1 替代,现代服务器很少使用 广泛应用于现代 Web 服务器,是主流协议之一

 四、请求协议和响应协议

无论是请求协议还是响应协议,都是由如下部分构成的: 

请求(或响应)首行;

请求(或响应)头信息;

空行;

请求(或响应)正文。

五、请求协议

1.浏览器监视请求和响应

  • 功能:通过浏览器的开发者工具可以监视HTTP请求和响应,获取完整的请求和响应信息。

  • 浏览器支持

    • Firefox:支持监视功能。

    • Google Chrome:内置此功能,无需安装。

2. HTTP请求

2.1 请求的结构
  • 请求首行:包含请求方法(如GET或POST)、请求路径和HTTP协议版本。

    • 示例:GET /hello/index.jsp HTTP/1.1

  • 请求头:包含客户端向服务器发送的附加信息。

  • 请求正文:GET请求没有正文,POST请求有正文。

2.2 GET请求
  • 特点

    • 请求参数通过URL传递,容量有限(通常不超过1024KB)。

    • 没有请求正文,只有请求头。

  • 请求头字段

    • Host:请求的主机名。

    • User-Agent:客户端的浏览器和操作系统信息。

    • Accept:客户端可接受的文档类型。

    • Accept-Language:客户端支持的语言。

    • Accept-Encoding:支持的压缩格式。

    • Connection:连接方式(如keep-alive)。

    • Cookie:客户端存储的Cookie信息。

2.3 POST请求
  • 特点

    • 请求正文包含表单数据。

    • 常用于提交表单数据。

  • 请求头字段

    • Referer:请求来源页面。

    • Content-Type:表单数据的编码类型(如application/x-www-form-urlencoded)。

    • Content-Length:请求正文的长度。

  • 请求正文

    • 示例:username=hello,表示表单中输入的数据。

3. HTTP响应

3.1 响应的结构
  • 响应首行:包含HTTP协议版本、状态码和状态码的解释。

    • 示例:HTTP/1.1 200 OK

  • 响应头:包含服务器向客户端发送的附加信息。

  • 响应正文:通常是HTML代码。

3.2 常见响应头字段
  • Server:服务器的版本信息。

  • Content-Type:响应正文的编码格式。

  • Content-Length:响应正文的长度。

  • Set-Cookie:服务器发送给客户端的Cookie。

  • Date:响应的时间。

3.3 常见状态码
  • 200 OK:请求成功。

  • 404 Not Found:未找到请求的资源。

  • 500 Internal Server Error:服务器内部错误。

  • 其他情况:通常是格式不匹配等问题。

4. 请求和响应的总结

  • 请求方法

    • GET:用于获取资源,无正文,参数在URL中。

    • POST:用于提交数据,有正文,数据在请求正文中。

  • 请求首行请求方法 URL HTTP/1.1

  • 响应首行HTTP/1.1 状态码 状态码的解释

  • 响应正文:通常是HTML代码。


网站公告

今日签到

点亮在社区的每一天
去签到