写在前面:感谢米安网,感谢task分享
http协议是一个渗透测试人员或者开发人员必须要懂的协议,我们访问网站也必须要用到http协议。
1.http简介
http(Hyper Text Transfer Protool超文本传输协议),一种详细规定了浏览器和万维网服务器之间互相通信的规则,是万维网交换信息的基础,允许将HTML(超文本标记语言)文档从web服务器传送到web浏览器。
也就是说我们访问网站必须要用到http协议。
2.使用firebug和curl观察http协议
firebug是一款非常好用的网页调试工具,可以查看http请求;
curl是一个利用url语法规定来传输文件和数据的工具,支持很多协议,如http、FTP、Telnet等,使用curl可以很清楚的看到所使用的协议。
1)firebug
首先打开Mozilla Firefox(或Google Chrome),添加firebug组件
然后访问网站,以http://www.moonsos.com/为例,右击鼠标,选择“使用firebug审查元素”
出现如下界面:
然后选择“网络”,就可以看到请求信息
备注:直接右击页面,选择“审查元素”-->选择“网络”也可以看到请求的详细信息。
首次打开firebug没有显示请求信息,我们在URL框中回车后,会看到三个GET请求,说明浏览器向服务器发送了三次请求
点击任意一个请求,在响应头信息中可以看到请求的详细信息
3.http请求的详解
HTTP首部
常用首部
首部 |
类型 |
描述 |
Date |
通用 |
提供日期和时间标志,说明报文是什么时候创建的 |
Content-Length |
实体 |
报文中实体主体的字节大小。如果进行了gzip压缩,这个大小就是压缩后的大小。客户端通过它确定报文截尾。 |
Accept |
请求 |
客户端通知服务器可以接收哪些媒体类型 |
Content-Type |
实体 |
报文中对象的媒体类型 |
Cache-Control |
通用 |
见 “缓存首部” |
Connection |
通用 |
Connection:close响应结束之后,连接会被关闭。不支持持久连接的HTTP/1.1应用程序要在所有请求和响应中插入Connection:close。 |
Server |
响应 |
识别服务器软件 |
Set-Cookie |
响应 |
设置服务器产生的ID |
其他首部
首部 |
类型 |
描述 |
Expect:100-continue |
请求 |
客户端告知服务器它们需求某种行为。我们的cache软件不支持这个首部 |
Transfer-Encoding:chunk |
通用 |
使用分块传输 |
User-Agent |
请求 |
用户的浏览器软件 |
Host |
请求 |
请求资源所在的服务器。(Apache中按Host区分虚拟主机) |
Location |
响应 |
令客户端重定向至URL |
Vary |
响应 |
服务端通知客户端,在服务端的协商中会使用哪些来自客户端的首部。它的值是一个首部列表,服务器会去查看这些首部,以确定什么内容作为响应发回给客户端。 |
4.手工模拟http请求
时间: 2024-10-15 18:38:28