免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
内容参考于: 易锦网校会员专享课
上一个内容:19.WEB渗透测试--抓包技术(下)-CSDN博客
-
HTTP请求包
HTTP简介 :http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。
1、支持客户/服务器模式 基于请求与响应的
2、无连接:限制每次连接只处理一一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间
3、无状态:指协议对事务处理没有记忆能力,缺少状态一位如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一个方面 ,在服务器不需要先前的信息时它的应答就比较快。
HTTP-URL(我们在访问网站时,输入的地址就被叫做url)
•URL,统一资源定位符。
•是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源 的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
•常见的基本URL语法:
•协议://服务器IP(:端口)/路径/文件(?查询)
•例如:http://www.xxx.com/aa.php?id=bb
请求头
Host: www.test.com/ //请求的目标域名和端口号
Origin: http://localhost:8081/ //请求的来源域名和端口号 (跨域请求时,浏览器会自动带上这个头信息)
Referer: https:/localhost:8081/link?query=xxxxx //请求资源的完整URI(代表你从哪里来)
User-Agent //浏览器信息
Cookie: //代表了我的身份
Accept: text/html,image/apng //代表客户端希望接受的数据类型是html或者是png图片类型
Accept-Encoding: gzip, deflate //代表客户端能支持gzip和deflate格式的压缩
Accept-Language: zh-CN,zh;q=0.9 //代表客户端可以支持语言zh-CN或者zh(值得一提的是q(0~1)是优先级权重的意思,不写默认为1,这里zh-CN是1,zh是0.9)
Connection: keep-alive //告诉服务器,客户端需要的tcp连接是一个长连接
If-None-Match //如果内容未改变返回304代码,对应Etag
If-Modified-Since //对应last-midified,未被修改则返回304代码 If-Modified-Since是标准的HTTP请求头标签,在发送HTTP请求时,把浏览器端缓存页面的最后修改时间一起发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行比较。
如果时间一致,那么返回HTTP状态码304(不返回文件内容),客户端接到之后,就直接把本地缓存文件显示到浏览器中。
请求方法
Head:与服务器get请求一样的回应,响应体不会返回
Put:向指定资源位置上传最新内容
Trace:回显服务器收到的请求
Delete:请求服务器删除url所标识的资源
Option:返回服务器特定资源所支持的HTML请求方法
Connect:http1.1协议能够将连接改为管道方式的代理服务器
Get
Post
Get和post的一些区别:
从功能上来讲:Get用来获取资源 post用来更新资源
从请求参数来讲:GET请求的数据会附加在url之后 post请求会把提交的数据放到http请求报文的请求体中
从安全性上来讲:POST比GET 更安全,因为GET请求会把提交的数据明文放在url栏,而POST 被包装在了请求体里面
从请求大小看:GET请求会受到限制,POST是没有限制的
响应头
Date: //服务端发送资源时的服务器时间
Expires: //缓存过期时间
Cache-Control: no-cache // 缓存方式
Etag // 文件内容hash
Last-Modified //最近一次文件修改时间
Content-Type: text/html; charset=utf-8 //编码格式
Content-Encoding: gzip //采用gzip对资源进行解码
Connection: keep-alive //tcp是长连接
Set-Cookie //设置Http Cookie