HTTP请求包含哪些内容,请求头和请求体有哪些类型?

HTTP请求包含哪些内容,请求头和请求体有哪些类型?

HTTP请求就像你给服务器发的“一封信”,信封上写着地址和附加信息,信封里装着你要发的具体内容。整个请求分为三部分:请求行(相当于信封上的“收件地址和动作”)、请求头(相当于信封上的“备注信息”)、请求体(相当于信封里的“具体内容”)。

一、HTTP请求的整体结构

就像写信的格式固定一样,HTTP请求也有严格的“格式规矩”:

请求行:第一行,告诉服务器“你要做什么”和“目标是谁”。

比如:POST /user/login HTTP/1.1

前半部分是“动作”(POST/GET等方法),中间是“目标地址”(比如/user/login),最后是“协议版本”(比如HTTP/1.1)。

请求头:从第二行开始,一堆“键值对”,相当于给服务器的“附加说明”。

比如“我用的浏览器是Chrome”“我能接收JSON格式的数据”“我这次请求带了Cookie”等,每行一个说明,用:分隔(比如User-Agent: Chrome/100.0.0.0)。

请求体:请求头结束后,空一行,后面的内容就是请求体,也就是你要发给服务器的“实际数据”(比如登录时的账号密码)。

注意:GET请求没有请求体(数据在URL里),POST/PUT等请求才有。

二、请求头:服务器的“说明书”

请求头是一堆“键值对”,核心作用是让服务器知道“怎么处理这个请求”。常见类型(按功能分):

标识客户端信息

User-Agent:告诉服务器“我是谁”(比如“Chrome浏览器”“iPhone的Safari”),服务器据此返回适合的页面(比如移动端页面)。Accept:告诉服务器“我能看懂什么格式”(比如Accept: application/json表示只接受JSON数据,不接受HTML)。

控制数据传输

Content-Type:如果有请求体,这个头必须写,告诉服务器“请求体是什么格式”(比如application/json表示请求体是JSON字符串,multipart/form-data表示有文件上传)。Content-Length:告诉服务器“请求体有多长”(多少字节),方便服务器完整接收。

身份和状态关联

Cookie:客户端存储的“身份凭证”(比如登录后的SessionID),服务器靠这个认出“你是谁”。Authorization:用于身份验证(比如接口调用时的Token,格式可能是Bearer xxxxx)。

缓存和连接控制

Cache-Control:告诉服务器“这个请求要不要缓存”(比如no-cache表示不缓存,每次都要新鲜数据)。Connection:控制连接是否保持(比如keep-alive表示请求完不关闭连接,下次继续用,节省时间)。

三、请求体:要发的“具体内容”

请求体是实际传给服务器的数据,格式由Content-Type头决定,常见类型:

表单数据(最常见)

application/x-www-form-urlencoded:普通表单提交(比如登录页的账号密码),格式像username=zhangsan&password=123,适合简单键值对。multipart/form-data:带文件的表单(比如上传头像),数据会分成多个“块”,每个块有自己的描述(比如文件名、类型),能同时传文字和文件。

JSON数据

application/json:现在接口开发最常用的格式,数据是JSON字符串(比如{"name":"张三","age":20}),适合复杂结构(嵌套对象、数组),Java里常用@RequestBody接收。

纯文本或二进制

text/plain:纯文本(比如简单的字符串消息)。application/octet-stream:二进制数据(比如直接传文件内容,不附带额外信息)。

对Java开发的意义

写接口时,通过request.getHeader("xxx")可以拿到请求头(比如获取Token验证身份)。接收请求体时,SpringMVC会根据Content-Type自动解析:JSON用@RequestBody转成对象,表单用@RequestParam或表单对象接收。发送请求(比如用RestTemplate)时,必须正确设置请求头(尤其是Content-Type),否则服务器会“看不懂”数据。

简单说:请求行定“动作和目标”,请求头定“规则和说明”,请求体定“实际内容”——三者配合,才能让服务器准确理解你的需求。

相关推荐

魅族手机生产厂家在哪里(魅族有自己的工厂吗?)
365bet娱乐登录

魅族手机生产厂家在哪里(魅族有自己的工厂吗?)

📅 07-02 👁️ 3081
通信线路迁改的方法与技术探讨
365bet娱乐登录

通信线路迁改的方法与技术探讨

📅 12-16 👁️ 8350
燃气热水器为什么一会热水一会冷水
beat365体育亚洲

燃气热水器为什么一会热水一会冷水

📅 08-19 👁️ 4608
知我(动画《剑来》片尾曲)
beat365体育亚洲

知我(动画《剑来》片尾曲)

📅 11-04 👁️ 5365
最适合阴天的叉鱼方法:找准逃跑点,叉叉都是大鱼!
365体育提现多久到账

最适合阴天的叉鱼方法:找准逃跑点,叉叉都是大鱼!

📅 07-07 👁️ 1569
天翼网关宽带识别码在哪里
365bet娱乐登录

天翼网关宽带识别码在哪里

📅 11-02 👁️ 3930
win11软件图标如何更改 win11软件图标更改步骤【教程】
AMD 速龙II X4 760K(盒)参数
365体育提现多久到账

AMD 速龙II X4 760K(盒)参数

📅 10-18 👁️ 7032
牛栏奶粉荷兰版在香港哪里有卖
365bet娱乐登录

牛栏奶粉荷兰版在香港哪里有卖

📅 11-29 👁️ 8036