整理一下HTTP的基础知识:(一):请求方法与命令调试
HTTP小结之一:请求方法与命令调试
天天都与HTTP交流,其实基本的东西也是应该了解了解的,这里主要参数IFEF的介绍整理一下,由于内容实在太多,就说下常用的。
总是听说HTTP有两个版本 HTTP1.0和HTTP1.1,其实即使是HTTP1.1也已经是老掉牙的版本了(1999),平时去Google搜个相关东西时,有的文章就很正经的来一句”这是HTTP1.1才支持的属性“,说的是不假,但就不能把一些无用的信息省一点吗,目前的客户端比如N年前的IE6与服务端,各种Apache,IIS等,有哪个还不支持1.1么?老的版本想找也找不到了。
本文小结一下HTTP的方法和调试。
请求方法
- GET
- POST
- PUT
- TRACE
- OPTIONS
- CONNECT
- HEAD
- DELETE
- TRACK
有人可能见过这些方法:
- PROPFIND
- PROPPATCH
- MKCOL
- COPY
- MOVE
- LOCK
- UNLOCK
这些谅是WebDav新定义的,WebDav是HTTP的扩展,也继承了HTTP,主要用于网络办公。面向对象讲究个继承,HTTP就像是个基类,WebDav就是继承了HTTP,进行了不少实例扩展,WebDav的实例可以实现一些类似FTP,SSH等类似的功能。
但一般实现一些高级功能可以再扩展WebDav去实现,
有实现了WebDav的具体的子类有 CalDav日历,CardDav名片,GroupDav群组.有些厂家定制了自己的专用服务器或Apache等服务器的扩展模块等去实现。当然,浏览器上的应用可能不一定支持这些方法,最简单的实现方法是tennet,一般是通过桌面客户端或者HTTP服务端底层来调用实现。
一个请求
一个HTTP请求分三段组成,
- 请求目标地址,请求方法
- 请求头
- 请求体(POST时)
使用最简单的调试方法就是命令行方式实现
>>telnet www.xdnote.com 80
>>【Ctrl】+【]】
>>【回车】
>>GET / HTTP/1.1
>>User-Agent:MSIE 6.0
>>HOST:www.xdnote.com
>>【回车】
调试行的好处是输入和输出清晰可见,差处就是不方便。如果是调试HTTP的话,使用抓包工具是不个不错的选择,Fidder,WireShark都可以抓包,当然,浏览器自带的开发者工具,FireBug等也可以
主要还是要看需要抓包到什么程度,如果看一看请求和响应,浏览器自带的工具就可,如果需要调试,断点,篡改请求响应,Fidder是个不错的选择。当然Fidder只支持HTTP,而且是代理式的抓包,有可能会影响功能,比如运行了Fidder后可能导致有些网站打不开。可以使用非代理式的WireShark抓包。WireShark是从网卡底层抓包,非常强大,太过强大也就是它的缺点,如果想好用,入门就得有得一看。
最后,HTTP1.0和HTTP1.1的官方文档地址,有兴趣的可以去看看,虽然在开发过程中并不是太多与协议层接触,但如果有简单了解HTTP协议的话,虽然不能使你成为高手,但对了解浏览器与服务器的工作机制还是有突破性的帮助的。
1996 MAY HTTP1.0 http://www.ietf.org/rfc/rfc1945.txt
1999 JUNE HTTP1.1 http://www.ietf.org/rfc/rfc2616.txt