解析HTTP协议原理

工具

Fiddler
话不多说,眼见为实,我们首先通过抓包获取HTTP请求内容进行解剖,聊一聊HTTP到底是什么。

抓包步骤

1,打开Fiddler,
2,用浏览器访问任一网站,
3,返回Fiddler,点击会话。
在这里插入图片描述

请求报文解析

请求行

POST http://www.diyiziti.com/all/5 HTTP/1.1
POST:请求方法
常见的请方法包括:
GET 向特定的服务器资源发出请求。
POST 向指定服务资源提交数据进行处理请求(例如提交表单或者上传文件)。参数被包含在请求体中。
PUT 向指定服务资源位置上传其最新内容,上传文。
DELETE 请求服务器删除Request-URL所标识的资源
注意:GET和POST的区别,GET的请求参数在URL中,POST在请求体中,截图为POST方法。GET有长度限制,POST无。GET方法快,POST方法慢。GET方法的参会被记录到浏览记录,POST不会被记录。

请求头

Accept: text/html, application/xhtml+xml, image/jxr, /
接收客户端可识别的内容类型列表
Referer: http://www.diyiziti.com/all/5
表示这个请求由哪个URL过来。
Accept-Language: zh-CN
客户端浏览器支持的语言。
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
请求发起方浏览器信息
Content-Type: application/x-www-form-urlencoded
请求的参数类型。常见类型有下面三种:
application/x-www-form-urlencoded: 以“键-值”对的方式组织的数据

multipart/form-data:既可以上传键值对,也可以上传文件
application/json:JSON 字符串格式提交数据
Accept-Encoding: gzip, deflate
浏览器可以支持的web服务器返回内容压缩编码类型。
Content-Length: 152
请求的内容长度
Host: www.diyiziti.com
请求的主机名。
Connection: Keep-Alive
表示是否需要持久连接。(HTTP 1.1默认进行持久连接)
Pragma: no-cache
用来包含实现特定的指令,此处表示不设置缓存。
Cookie: Hm_lvt_1a6016c8e736ecef523fbe2539419b5a=1579482928; Hm_lpvt_1a6016c8e736ecef523fbe2539419b5a=1579482928
客户端浏览器中该连接的cookie信息。

请求参数

又称可选消息部分,有些请求是无参数;具体参数内容由接口设计决定。

响应报文解析

在这里插入图片描述

状态行

200是状态码。常见的状态码:
200 成功响应
301 请求资源的URL被永久的改变
302 临时性重定向
400 Bad Request: 请求语法有问题,服务器无法识别。
没有host请求头字段,或者设置了超过一个的host请求头字段。
401 UnAuthorized: 客户端未授权该请求。缺乏有效的身份认证凭证,一般可能是未登陆。登陆后一般都解决问题。
403 Forbidden: 服务器拒绝响应。权限不足。
404 Not Found: URL无效或者URL有效但是没有资源。
405 Method Not Allowed: 请求方式Method不允许。但是GET和HEAD属于强制方式,不能返回这个状态码。
406 Not Acceptable: 资源类型不符合服务器要求。
407 Proxy Authorization Required: 需要代理授权。
408 Request Timeout:服务器将不再使用的连接关闭。响应头会有Connection: close。
426 Upgrade Required: 告诉客户端需要升级通信协议。
500 Internal Server Error: 服务器内部错误,未捕获。
502 Bad Gateway: 服务器作为网关使用时,收到上游服务器返回的无效响应。
503 Service Unavailable: 无法服务。一般发生在因维护而停机或者服务过载。一般还会伴随着返回一个响应头Retry-After: 说明恢复服务的估计时间。
504 Gateway Timeout: 网关超时。服务器作为网关或者代理,不能及时从上游服务器获取响应返回给客户端。
505 Http Version Not Supported: 发出的请求http版本服务器不支持。如果请求通过http2发送,服务器不支持http2.0,就会返回该状态码。
响应头与请求头类似。响应正文即返回内容,假如是页面,即就是页面内容。

HTTP原理

HTTP由请求和响应构成,是一个标准的请求-应答模型(B/S)。HTTP协议永远都是客户端发起请求,服务器返回响应信息。HTTP默认的端口为80,HTTPS默认端口是443。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

索菲亚李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值