前言HTTP 是 Web 通信的基础协议,它规定了客户端和服务器之间如何交换数据。在一次 HTTP 请求中,数据的格式主要分为三部分:请求行、请求头和请求体。
1 请求行(Request Line) 请求行是 HTTP 请求数据的第一行,包含了请求的资源路径、请求方法和协议版本。
常见的请求方法有:
GET:请求指定的资源。GET 请求通常用于获取数据。POST:向指定资源提交数据。POST 请求通常用于提交表单或上传文件。【示例】
GET / HTTP/1.1 表示使用 GET 请求方法请求根路径资源,协议版本为 HTTP/1.1。
2 请求头(Request Headers) 请求头包含额外的信息,用来描述客户端的请求或说明如何处理请求。
常见的请求头有:
Host:指定请求的主机名,例如 Host: www.itcast.cn。User-Agent:浏览器或客户端的版本信息,标识请求来源的客户端类型,如 Mozilla/5.0 Chrome/91.0。Accept:指定浏览器可以接收的资源类型,如 text/*,image/*或者*/*表示所有。Accept-Language:指定浏览器偏好的语言类型,服务器可以据此返回不同语言的网页。Accept-Encoding:指定浏览器可以接收的压缩类型,如 gzip,deflate。3 请求体(Request Body)请求体通常用于 POST 请求中,包含了请求的参数数据。例如,表单提交的内容、文件等都可以通过请求体传递。GET 请求不包含请求体。
【GET 请求与 POST 请求的区别】
特性
GET 请求
POST 请求
参数传递方式
参数在 URL 中传递,包含在请求行中
参数在请求体中传递,不出现在 URL 中
数据大小限制
有大小限制,通常为 2048 字符
无大小限制,可以传递较大的数据
安全性
数据会显示在 URL 中,不适合传输敏感信息
数据在请求体中传递,较为安全,适合传输敏感数据
应用场景
适合用于获取数据,查询操作等
适合用于提交表单、上传文件等操作
4 请求示例 ①GET 请求示例
代码语言:plaintext复制GET / HTTP/1.1
Host: www.itcast.cn
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 Chrome/91.0 ②POST 请求示例
代码语言:plaintext复制POST / HTTP/1.1
Host: www.itcast.cn
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 Chrome/91.0
username=superbaby&password=1234565 Http请求常见的状态码状态码
名称
分类
描述
200
OK
成功
响应成功,表示服务器已成功处理请求,但不一定代表业务逻辑的成功。
201
Created
成功
请求成功,且资源已被创建(通常是 POST 请求)。
204
No Content
成功
请求成功,但没有返回任何内容(通常是删除操作)。
301
Moved Permanently
重定向
请求的资源已被永久移动到新的 URL,需使用新的 URL 访问。
302
Found
重定向
请求的资源临时移动到新的 URL,需暂时使用新的 URL 访问。
304
Not Modified
重定向
资源未修改,客户端可以使用缓存。
400
Bad Request
客户端错误
请求无效,服务器无法理解该请求(如语法错误)。
401
Unauthorized
客户端错误
未授权,客户端需要认证以获得资源访问权限。
403
Forbidden
客户端错误
禁止访问,客户端无权访问该资源。
404
Not Found
客户端错误
请求的资源未找到(资源不存在或 URL 错误)。
405
Method Not Allowed
客户端错误
请求的方法被禁止(如 GET 改为 POST)。
408
Request Timeout
客户端错误
请求超时,服务器未收到完整的请求数据。
500
Internal Server Error
服务端错误
服务器内部错误,无法完成请求。
501
Not Implemented
服务端错误
服务器不支持当前请求所需的功能。
502
Bad Gateway
服务端错误
网关或代理服务器从上游服务器收到无效响应。
503
Service Unavailable
服务端错误
服务器超负载或维护中,暂时无法处理请求。
504
Gateway Timeout
服务端错误
网关或代理服务器在等待上游服务器时超时。