HTTP请求解析

一个完整的HTTP请求包括:请求行、请求头、请求体。

  1. 请求行
    请求行由三个部分组成,分别是请求方式、请求URL路径和HTTP协议的版本。
    比如:

其中Get是请求方式,“/"是请求URL路径,HTTP/1.1是HTTP协议的版本。
2. 请求头
常用的请求头部(部分):
Accept: 接收类型,表示浏览器支持的MIME类型 (对标服务端返回的Content-Type)
Accept-Encoding:浏览器支持的压缩类型,如gzip等,超出类型不能接收
Content-Type:客户端发送出去实体内容的类型
Cache-Control: 指定请求和响应遵循的缓存机制,如no-cache
If-Modified-Since:对应服务端的Last-Modified,用来匹配看文件是否变动,只能精确到1s之内,http1.0中
Expires:缓存控制,在这个时间内不会请求,直接使用缓存,http1.0,而且是服务端时间
Max-age:代表资源在本地缓存多少秒,有效时间内不会请求,而是使用缓存,http1.1中
If-None-Match:对应服务端的ETag,用来匹配文件内容是否改变(非常精确),http1.1中
Cookie: 有cookie并且同域访问时会自动带上
Connection: 当浏览器与服务器通信时对于长连接如何进行处理,如keep-alive
Host:请求的服务器URL
Origin:最初的请求是从哪里发起的(只会精确到端口),Origin比Referer更尊重隐私
Referer:该页面的来源URL(适用于所有类型的请求,会精确到详细页面地址,csrf拦截常用到这个字段)
User-Agent:用户客户端的一些必要信息,如UA头部等
3. 请求体
请求体包含请求所携带的参数或文件,没有请求参数的情况下该模块不显示。
Request Payload:
当一个请求的类型是POST/PUT时,若content-type设置为application/json,则请求参数以Request Payload进行传递并且不会出现在URL中
Form Data:
当一个请求的类型是POST,若content-type设置为application/x-www-form-urlencoded,或者未指定content-type(则默认content-type为application/x-www-form-urlencoded)。 则请求参数以Form Data的形式进行传递并且不会出现在URL中
Query String Parameters:
当一个请求的类型是GET/DELETE时,则请求参数以Query String Parameters的形式进行传递。且参数会以&分隔的方式出现在URL中
例如,https://yuque.com?name=hha&age=18.get请求参数无法设置为json格式,可以通过变幻为Form表单提交的方式让后台可以获取数组对象的格式
4. 例子

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值