Fiddler 教程

HTTP 协议请求报文

HTTP 的请求报文是指从客户端发送给服务器的报文,如下图:

一个 HTTP 请求报文由请求行(request line)、请求头部(header)、空行和请求数据(请求主体body)4个部分组成。如下图:

请求行

请求行由三部分组成:请求方法,请求URL(不包括域名),HTTP 协议版本

  • 请求方法:HTTP协议提供了多个请求方法,分别为 GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT,其中 GET 和 POST 方法最常用。

  • 请求URL:该 URL 用来告知服务器我们需要获取那个资源,例如:/images/default.png

  • HTTP协议版本:用来告诉服务器我们采用的 HTTP 什么版本,如:HTTP/1.1

请求头部

HTTP请求报文请求行下紧接着就是请求头,请求头格式如下:

请求头名称: 请求头具体值

客户端可以通过 HTTP 报文请求头传递更多的信息给服务器,服务器根据客户端传递的请求进行相应的动作。可以说,请求头就是用来和服务器进行通信、协商用的。例如:

  • Accept 请求头指定客户端可以接收到的消息内容,例如:Accept: text/plain

  • Accept-charset 请求头指定游览器可以接受的字符编码,例如:Accept-charset: utf-8

  • Accept-Encoding 请求头指定web服务器可以返回的压缩编码类型,例如:Accept-charset: gzlp 

  • Accept-Language 请求头游览器可接受语言,例如:Accept-Language: en,zh

  • Accept-Ranges 请求头指定可以请求网页实体的一个或者多个子范围字段

空行

请求头部的最后会有一个空行,表示请求头部结束,接下来为请求数据。

请求数据

请求数据不在 GET 方法中使用(GET 方法使用 URL 传递参数),而在 POST 方法中使用。POST 方法适用于需要客户填写表单的场合,与请求数据相关的最长使用的请求头部是 Cntent-Type 和 Content-Length。

一个完整的示例

下面是通过 Fiddler 软件抓包中某一个 HTTP 包的请求头,如下:

GET http://localhost/moban5718/ HTTP/1.1
Host: localhost
Connection: keep-alive
sec-ch-ua: "Chromium";v="21", " Not;A Brand";v="99"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: http://localhost/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号