http浅谈

来源:互联网 发布:java 汉子转拼音 编辑:程序博客网 时间:2024/04/30 10:24

使用 Charles抓包工具进行数据包的追踪,接口URL的抓取在开发中是很常见的需求。

要看懂Charles中的内容,需要http协议的规范。现在对几个HTTP数据包进行分析,以此说说HTTP的数据的规范

HTTP超文本传输协议是一个应用层协议,主要完成client和server直接的网络通信。下面是一个App发给server的请求:


作为客户端向server发起的一个request,包括多条信息。第一行是请求方法。

GET表明了请求的属性。就是这个请求的目的是什么。不同的属性对应不同的方法,下面是常见的方法,及具体的含义:

GET:获取server上的WEB资源

POST:跟新server上的WEB资源

PUT:向server上传资源文件

DELETE:删除server上的资源文件。server会返回204(No Content,如果资源已经被删除)

HEAD:同样是向server获取资源,不过GET是获取资源头部和报文主体等完整信息,而HEAD只用来获取资源的头部,不取得报文主体信息。server会返回指定资源,比如mindex.html响应首部

OPTIONS:这个方法是http1.1才支持的方法。主要是询问服务器某个资源支持的操作。比如app发了个 OPTIONS mindex.html到服务端,sever的响应报文中有Allow:GET, POST, HEAD等。表明mindex.html支持这三个操作。

TRACE:用来追踪app发送出去的请求如何被修改。这个方法并不常有,有兴趣的朋友可以找相关的HTTP书籍。

CONNECT :这个方法要求在与代理服务器通信时,建立隧道tunnel,实现用SSL和TSL等协议,进行 TCP 通信。也就是说使用这个方法时,app直接通信的是proxy服务器。所以请求报文一定是CONNECT proxy-host:8080 HTTP/1.1,其中proxy-host是代理服务器域名,8080是端口号。当proxy返回200之后,app就能通过跟真正的sever通信了。












0 0