原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://7826443.blog.51cto.com/7816443/1729227
写在前面:感谢米安网,感谢task分享,感谢Assassin_CHN分享
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可以很清楚的看到所使用的协议。
2.1 firebug
首先打开Mozilla Firefox(或Google Chrome),添加firebug组件
http://www.moonsos.com/为例,右击鼠标,选择“使用firebug审查元素”
首部 | 类型 | 描述 |
Expect:100-continue | 请求 | 客户端告知服务器它们需求某种行为。 |
Transfer-Encoding:chunk | 通用 | 使用分块传输 |
User-Agent | 请求 | 用户的浏览器软件 |
Host | 请求 | 请求资源所在的服务器。(Apache中按Host区分虚拟主机) |
Location | 响应 | 令客户端重定向至URL |
Vary | 响应 | 服务端通知客户端,在服务端的协商中会使用哪些来自客户端的首部。它的值是一个首部列表,服务器会去查看这些首部,以确定什么内容作为响应发回给客户端。 |
3.2 http协议是无状态的,客户端(浏览器)发起request请求,服务器返回response响应,然后建立连接。
3.4 http请求常见返回状态码:
1xx 临时响应
返回码 | 说明 |
100:Continue | 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 |
101:Switching Protocols | 请求者已要求服务器切换协议,服务器已确认并准备切换。 |
2xx 成功
返回码 | 说明 |
200:OK | 服务器已成功处理了请求。 |
206:Partial Content | 服务器成功处理了部分 GET 请求。 |
3xx 重定向
返回码 | 说明 |
301:Moved Permanently | 请求的网页已永久移动到新位置 |
302:Found | 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。只在当次请求中生效。 |
303:See Other | 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。 对于除 HEAD 之外的所有请求,服务器会自动转到其他位置。 |
304:Not Modified | 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。如果网页自请求者上次请求后再也没有更改 过,您应当将服务器配置为返回此响应(称为 If-Modified-Since HTTP 标头)。 |
305:Use Proxy | 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。 |
307:Temporary Redirect | 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 此代码与响应 GET 和 HEAD 请求的 301 代码类似,会自动将请求者转到不同的位置 |
4xx 请求错误
返回码 | 说明 |
400:Bad Request | 服务器不理解请求的语法。服务器没有收到GET。 |
401:Unauthorized | 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。 |
403:Forbidden | 服务器拒绝请求。 |
404:Not Found | 服务器找不到请求的任何信息。 |
405:Method Not Allowed | 禁用请求中指定的方法。 |
406:Not Acceptable | 无法使用请求的内容特性响应请求的网页。 |
407:Proxy Authentication Required | 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。 |
411:Length Required | 服务器不接受不含有效内容长度标头字段的请求。 |
413:Request Entity Too Large | 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 |
414:Request-URI Too Large | 请求的 URI(通常为网址)过长,服务器无法处理。 |
415:Unsupported Media Type | 请求的格式不受请求页面的支持。 |
416:Requested range not satisfiable | 如果页面无法提供请求的范围,则服务器会返回此状态代码。 |
417:Expectation Failed | 服务器未满足”期望”请求标头字段的要求。(Expect) |
5xx 服务器错误
返回码 | 说明 |
500:Internal Server Error | 服务器遇到错误,无法完成请求。 |
502:Bad Gateway | 服务器充当网关或代理,从上游服务器收到无效响应。 |
503:Service Unavailable | 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态 |
504:Gateway Timeout | 服务器充当网关或代理,但没有及时从上游服务器收到请求。 |
505:HTTP Version Not Supported | 服务器不支持请求中所用的 HTTP 协议版本。 |
4.手工模拟http请求
4.1 通过Telnet模拟http请求
windows默认不支持Telnet,需要开启Telnet服务,如下图:
原文作者:少时不知贵
原文地址: https://www.cnblogs.com/0to9/p/5104404.html
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。