(协议分析)通过抓包分析HTTP协议以及包中内容

因为网络安全往往需要一门脚本语言的支持,不然只能用着别人的工具。因此决定从学习编写一只爬虫开始,来入门python掌握一门脚本语言,学习爬虫,当然与http协议离不了关系,因此先分析一下http的工作流程

HTTP协议

1.什么是HTTP
http协议是超文本传输协议,它定义了浏览器和服务器之间的通信规则,http有两个程序实现,一个客户端程序,一个服务器程序,从层次结构上来看属于应用层的协议,使用tcp作为它的支撑运输协议,并且是一种无状态协议,以此来降低服务器的负荷

2.工作原理
HTTP:客户端与服务器端建立连接 -————客户端发出请求报文———— 服务器端发出应答报文
HTTPS:现在大多数页面使用HTTPS来进行数据的交流,因为HTTP报文都是明文的,一旦目标截取数据包,很有可能得到用户的账号密码
过程: 主机向服务器发送请求,想要建立连接—————服务器向主机返回一个公钥(公钥需要到认证中心申请,因此许多做黑产的页面只能使用http)——————主机收到公钥后,利用公钥对自己的请求报文进行加密——————服务器收到后利用自己的私钥进行解密

3.http请求
包括 请求行 请求头 请求内容
请求方式有get、post、put、delet等等
这里主要说下最常见的两种get和post post可以承载更多的发送信息

post请求

(协议分析)通过抓包分析HTTP协议以及包中内容_第1张图片
如图---------在百度 搜索123 后抓取到如上图的数据包
POST:请求方式以及使用的HTTP的版本
URI:统一资源标识符(注意URI和URL是两种不同的概念,但是可以把它当作url来理解,下面是对于两者区别的详细讲解)

https://www.jianshu.com/p/ba15d066f777

Request Version:版本信息
Request Method:请求方法
Host:表示向哪一台主机发送请求
Accept:告诉浏览器我可以接收哪些数据类型
Accept-Encoding:告诉浏览器,支持的压缩格式
User-Agent:客户机使用的浏览器以及版本信息
Cache Control:缓存控制
Connection:告诉服务器请求完后是断开还是保持连接
Content-Length:我可以接收的数据的长度
Full-Request URI:所请求的完整的URI
HTTP Request :HTTP请求的进度
Response in frame 请求的帧

request请求

(协议分析)通过抓包分析HTTP协议以及包中内容_第2张图片
Request URI 以及请求的内容
Request path 所请求的路径
Referer:表示的含义是你是从哪个页面来到此页面的,服务器往往通过referer来防盗链
Cookie:http往往是种无状态协议,因此大部分页面使用cookies来对用户进行表示,从而实现登录功能

(这里出了点问题,因为现在的页面大都是https的包,导致我抓不到几个数据包,唉)

4.http响应

响应同样也包括 响应行 响应头 响应内容

(协议分析)通过抓包分析HTTP协议以及包中内容_第3张图片
Sever:服务器信息
Last-modified:上一次修改时间

状态码含义以及常见的状态码:我们可以通过状态码得到此次请求是否成功
1XX 表示信息 如
2XX 表示请求成功
3XX 表示重定向
4XX 表示问题在客户端
5XX 表示问题在服务器端
几个常见的状态码

  • 200 OK 请求成功(其后是对GET和POST请求的应答文档。)
  • 302 Found 所请求的页面已经临时转移至新的url
  • 400 Bad Request
  • 403 Forbidden 对被请求页面的访问被禁止
  • 404 Not Found服务器无法找到被请求的页面。
  • 500 Internal Server Error
    请求未完成。服务器遇到不可预知的情况。
  • 502 Bad Gateway
    请求未完成。服务器从上游服务器收到一个无效的响应。
  • 504 Gateway Timeout
    网关超时。

在抓取数据包时,发现wireshark不能够抓取https的数据包
然而现在页面大多数都是https,唉

(协议分析)通过抓包分析HTTP协议以及包中内容_第4张图片

你可能感兴趣的:((协议分析)通过抓包分析HTTP协议以及包中内容)