http 请求报文的结构

一个完整的 HTTP 请求由 4 部分组成

  1. 请求行(Request Line)
  2. 请求头(Request Headers)
  3. 空行(CRLF)
  4. 请求体(Request Body)

1. 请求行(必背)

格式:

请求方法 + URL + 协议版本

示例:

GET /index.html HTTP/1.1

  • 请求方法:GET、POST、PUT、DELETE、HEAD、OPTIONS 等
  • URL:请求资源路径
  • HTTP 版本:HTTP/1.1、HTTP/2、HTTP/3

2. 请求头(Header)

一系列键值对,告诉服务器一些附加信息。

常见请求头:

  • Host:域名
  • User-Agent:浏览器 / 客户端信息
  • Content-Type:请求体类型(application/json、form-data 等)
  • Cookie:携带的 Cookie
  • Connection:keep-alive 等
  • Accept:可接受的响应类型
  • Authorization:权限认证

3. 空行(非常重要)

必须有一个空行,作用是:

分隔请求头和请求体

哪怕没有请求体,这个空行也不能少,这是 HTTP 协议规定的。

4. 请求体(Body)

  • GET 请求一般没有请求体
  • POST、PUT 等才有
  • 存放提交的数据:表单、JSON、文件等

完整示例(你一看就懂)

GET /user HTTP/1.1          // 请求行
Host: www.example.com       // 请求头
User-Agent: Mozilla/5.0
Accept: */*
Connection: keep-alive
                            // 空行(必须有)
                            // GET 无请求体

POST /login HTTP/1.1        // 请求行
Host: www.example.com
Content-Type: application/json
Content-Length: 38
                            // 空行
{"username":"admin","password":"123456"}  // 请求体

面试高频考点(背下来)

  1. GET 和 POST 的区别(必问)
  2. GET 有没有请求体?→ 协议没禁止,但浏览器和服务器一般都不支持 / 忽略,所以面试回答:GET 没有请求体
  3. 空行的作用:分隔请求头和请求体
  4. Content-Type 常见值:application/jsonapplication/x-www-form-urlencodedmultipart/form-data(文件上传)
全部评论

相关推荐

想踩缝纫机的小师弟练...:不理解你们这些人,要放记录就把对方公司名字放出来啊。不然怎么网暴他们
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务