http数据包

HTTP全称为Hyper Text Transfer Protocol,被译为超文本传输协议,是互联网上应用最为广泛的—种

网络协议。涉及两个对象:客户端与服务端。只有在客户端发出请求时,服务端才会响应。我们上网就是为了获取资源,这就需要我们进行通信。所以客户端与服务端就要进行通信。客户端发送请求报文,服务端接收后发送响应报文。http规定了其格式。HTTP用的是TCP连接,因为他有可靠的三次握手机制。

http包含了三个部分。

1.首行。也叫请求行,包括方法、url、版本。

2.请求报头(header)。请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分。

3.空行。表示请求报头的结束。

4.请求正文(body):空行后面的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中会有 一个Content-Length属性来标识Body的长度

这里用百度的抓包来说明一下:

GET / HTTP/1.1
Host: www.baidu.com
Cookie: BIDUPSID=2C640F45B8C78FBF7659A6CD6FC9A5AB; PSTM=1694851299; BAIDUID=2C640F45B8C78FBF9A01D8073C518235:FG=1; BD_UPN=12314753; BAIDUID_BFESS=2C640F45B8C78FBF9A01D8073C518235:FG=1; ZFY=y75:AG4aiwpRk7F:AID:AREAznI4Mf5KsbjBZdgxDkP4dQ:C
Sec-Ch-Ua: "Chromium";v="97", " 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/97.0.4692.71 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: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

首行,也叫请求行由三个部分组成:请求方法,请求URL和HTTP版本。用空格来进行分割。

而HTTP规划定义了8种可能的请求方法: 
GET:检索URL中标识资源的一个简单请求
HEAD与GET方法相同.服务器只活回状态行和头标。并不运回请求
POST:服务器接受被写入客户国输出流中的数据的请求
PUT:服务器保存清求数菇作为指定URL新内容的请求
DELETE:服务器集URL中命令的资源的请求
OPTIONS:关于服务器支持的请求方法信息的请求
TRACE:web服务器反漆Http请求和其头标的请求
CONNECT:已文档化.但当前未实现的一个方法,预留做隧道处理

常用的是GET,POST。GET是一种获取的方法,而POST是一种偏向于传输提交数据的方法。

第二行:客户端指定想访问的http服务器的域名,IP 地址和端口号。如:Host: www.baidu.com,Host:  127.0.0.1

Upgrade-Insecure-Requests:1
告诉服务器,自己支持这种操作。就是说我能读懂你服务器发过来的上面这条信息,并且在以
后发请求的时候不用http而用https 
·upgrade-insecure-requests:升级不安全请求
Connection: close:
当客户端和服务端通信时对于长链接如何进行处理。在http1.1中,两者都是默认对方支持长链接的,如果客户端使用http1.1协议,但又不希望使用长链接,则需要在header中指明connection的值为close;如果服务端也不想支持长链接,则在response中也需要明确说明connection的值为close. 不论request还是response的header中包含了值为close的connection,都表明当前正在使用的tcp链接在当天请求处理完毕后会被断掉。以后客户端再进行新的请求时就必须创建新的tcp链接
http缓存:Cache-Control: max -age=0

no-cache:强制每次请求直接发送给源服务器,而不经过本地缓存版本的校验。cache-control max-age>0:直接从游览器缓存中提取
·max-age<=0:向server发送http请求确认,该资源是否有修改,有的话,返回200,无的话返回304. 

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)

User-Agent会告诉网站服务器,访问者是通过什么工具来请求的,如果是爬虫请求,一般会拒绝,如果是用户浏览器,就会应答。
Accept:text/html,application/xhtml+xml,application/xml
Accept:浏览器接受的响应格式
text/html:HTML格式
text/plain:纯文本格式

text/xml:XML格式

image/gif:gif图片格式

image/jpeg:jpg图片格式

image/png:png图片格式
application/xhtml+xml:XHTML系列文档的类型
Accept-Language:zh-CN,zh;q=0.9 
浏览器支持的语言分别是简体中文和中文,优先支持简体中文。
Accept-Language表示浏览器所支持的语言类型;
zh-cn表示简体中文;zh表示中文
g是权重系数,范围0=<q<=1,q值越大,请求越倾向于获得其“,"之前的类型表示的内容,
若没有指定g值,则默认为1,若被赋值为0,则用于提醒服务器哪些是浏览器不接受的内容
类型。
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值