问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

HTTP协议中常见的状态码和字段详解

创作时间:
作者:
@小白创作中心

HTTP协议中常见的状态码和字段详解

引用
CSDN
1.
https://blog.csdn.net/LUCIAZZZ/article/details/145732011

HTTP协议是互联网的基础协议之一,理解HTTP状态码和字段对于开发人员和运维人员都非常重要。本文将详细介绍HTTP中常见的状态码和字段,帮助读者更好地理解和使用HTTP协议。

HTTP常见的状态码

1xx(信息性状态码)

  • 100 Continue:客户端应继续其请求。
  • 101 Switching Protocols:服务器根据客户端的请求切换协议。

2xx(成功状态码)

  • 200 OK:请求成功,服务器返回所请求的数据。
  • 201 Created:请求成功并且服务器创建了新的资源。
  • 202 Accepted:请求已接受,但尚未处理完成。
  • 204 No Content:请求成功,但服务器没有返回任何内容。

3xx(重定向状态码)

  • 301 Moved Permanently:请求的资源已被永久移动到新位置。
  • 302 Found:请求的资源临时从不同的URI响应请求。
  • 304 Not Modified:资源未被修改,可以使用缓存的版本(协商缓存,服务器告诉客户端可以使用缓存)

4xx(客户端错误状态码)

  • 400 Bad Request:请求无效或格式错误。
  • 401 Unauthorized:请求需要用户认证。
  • 403 Forbidden:服务器拒绝请求。
  • 404 Not Found:请求的资源不存在。

5xx(服务器错误状态码)

  • 500 Internal Server Error:服务器内部错误。
  • 501 Not Implemented:服务器不支持请求的功能。
  • 502 Bad Gateway:网关或代理服务器收到无效响应。
  • 503 Service Unavailable:服务器暂时无法处理请求(可能是过载或维护)

HTTP中常见的字段

1.Host字段

客户端发送请求时,用来指定服务器的域名
有了Host字段,就可以将请求发往「同一台」服务器上的不同网站

2.Content-Length字段

服务器在返回数据时,会有Content-Length字段,表明本次回应的数据长度
如上面则是告诉浏览器, 本次服务器回应的数据长度是 1000 个字节,后面的字节就属于下一个回应了。
大家应该都知道HTTP 是基于TCP 传输协议进行通信的,而使用了 TCP 传输协议,就会存在一个“粘包”的问题

HTTP header 的边界

HTTP 协议通过设置回车符换行符作为 HTTP header 的边界

HTTP body 的边界

通过 Content-Length 字段作为 HTTP body 的边界
这两个方式都是为了解决“粘包”的问题

3.Connection字段

Connection字段最常用于客户端要求服务器使用「HTTP 长连接」机制,以便其他请求复用
HTTP 长连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态
Connection:Keep-Alive
HTTP/1.1 版本的默认连接都是长连接,但为了兼容老版本的 HTTP,需要指定
Connection
首部字段的值为
Keep-Alive
开启了 HTTP Keep-Alive 机制后,连接就不会中断,而是保持连接。当客户端发送另一个请求时,它会使用同一个连接,一直持续到客户端或服务器端提出断开连接

4.Content-Type字段

Content-Type字段用于服务器回应时,告诉客户端,本次数据是什么格式
发送的是网页,而且编码是UTF-8
客户端声明自己可以接受任何格式的数据

5.Content-Encoding字段

Content-Encoding字段说明数据的压缩方法
表示服务器返回的数据使用了什么压缩格式
表示服务器返回的数据采用了 gzip 方式压缩,告知客户端需要用此方式解压。

客户端在请求时,用Accept-Encoding字段说明自己可以接受哪些压缩方法

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号