http请求报文和响应报文是怎样的

本文参考:秋招复习笔记——八股文部分:网络HTTP_服务远程调用 八股文-优快云博客

一篇让你彻底了解http请求报文和响应报文的结构_牛客网

小林coding  3.1 HTTP 常见面试题 | 小林coding

ChatGPT

仅用于自用整理复习

总览图:

一.请求报文

HTTP的请求报文由四部分组成(请求行+请求头部+空行+请求体):

  1. 请求行

请求行用于指定请求的方法、目标资源的路径以及所使用的 HTTP 版本。格式如下:<方法> <请求路径> <HTTP版本>

方法:表示请求的动作,如 GET、POST、PUT、DELETE 等。

请求路径:资源的路径,例如 /index.html。

HTTP 版本:使用的 HTTP 协议版本,例如 HTTP/1.1 或 HTTP/2.0。

  1. 请求头部

请求头包含一些键值对,描述客户端的环境以及详细请求信息。

Host: www.example.com

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)

Accept: text/html,application/xhtml+xml

常见请求头:

Host:指定目标服务器域名或 IP。

User-Agent:客户端的身份信息。

Accept:客户端希望接收的内容类型。

  1. 空行

空行用于分隔请求头和请求体。

  1. 请求体

请求体包含数据,主要用于 POST、PUT 等方法。

  • 响应报文

响应头用于描述返回的资源和服务器的信息。

  1. 状态行

状态行包含服务器的协议版本、状态码以及状态描述。格式如下:

<HTTP版本> <状态码> <状态描述>

HTTP 版本:服务器使用的 HTTP 协议版本。

状态码:用数字表示响应状态,以下是常用的状态码:

1xx 类状态码属于提示信息,是协议处理中的一种中间状态,实际用到的比较少。

2xx 类状态码表示服务器成功处理了客户端的请求,也是我们最愿意看到的状态。

「200 OK」是最常见的成功状态码,表示一切正常。如果是非 HEAD 请求,服务器返回的响应头都会有 body 数据。

「204 No Content」也是常见的成功状态码,与 200 OK 基本相同,但响应头没有 body 数据。

「206 Partial Content」是应用于 HTTP 分块下载或断点续传,表示响应返回的 body 数据并不是资源的全部,而是其中的一部分,也是服务器处理成功的状态。

3xx 类状态码表示客户端请求的资源发生了变动,需要客户端用新的 URL 重新发送请求获取资源,也就是重定向。

「301 Moved Permanently」表示永久重定向,说明请求的资源已经不存在了,需改用新的 URL 再次访问。

「302 Found」表示临时重定向,说明请求的资源还在,但暂时需要用另一个 URL 来访问。301 和 302 都会在响应头里使用字段 Location,指明后续要跳转的 URL,浏览器会自动重定向新的 URL。

「304 Not Modified」不具有跳转的含义,表示资源未修改,重定向已存在的缓冲文件,也称缓存重定向,也就是告诉客户端可以继续使用缓存资源,用于缓存控制。

4xx 类状态码表示客户端发送的报文有误,服务器无法处理,也就是错误码的含义。

「400 Bad Request」表示客户端请求的报文有错误,但只是个笼统的错误。

「403 Forbidden」表示服务器禁止访问资源,并不是客户端的请求出错。

「404 Not Found」表示请求的资源在服务器上不存在或未找到,所以无法提供给客户端。

5xx 类状态码表示客户端请求报文正确,但是服务器处理时内部发生了错误,属于服务器端的错误码。

「500 Internal Server Error」与 400 类型,是个笼统通用的错误码,服务器发生了什么错误,我们并不知道。

「501 Not Implemented」表示客户端请求的功能还不支持,类似“即将开业,敬请期待”的意思。

「502 Bad Gateway」通常是服务器作为网关或代理时返回的错误码,表示服务器自身工作正常,访问后端服务器发生了错误。

「503 Service Unavailable」表示服务器当前很忙,暂时无法响应客户端,类似“网络服务正忙,请稍后重试”的意思。

状态描述:对状态码的简要说明。

  1. 响应头部

响应头用于描述返回的资源和服务器的信息。例:

Content-Type: text/html; charset=UTF-8

Content-Length: 305

Server: Apache/2.4.41 (Ubuntu)

常见响应头:

Content-Type:响应数据的类型,例如 text/html 或 application/json。

Content-Length:响应数据的长度(字节数)。

Server:服务器软件信息。

3. 空行

空行用于分隔响应头和响应体。

4. 响应体 (Body)

响应体包含返回给客户端的实际内容。例如返回 HTML 页面、JSON 数据等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值