GET 请求获取Request-URI所标识的资源 POST 在Request-URI所标识的资源后附加新的数据 HEAD 请求获取由Request-URI所标识的资源的响应消息报头 PUT 请求服务器存储一个资源,并用Request-URI作为其标识 DELETE 请求服务器删除Request-URI所标识的资源 TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断 CONNECT 保留将来使用 OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求 但是使用代理后,从代理服务上得到的请求如下:
与第一张图片对比一下,有什么不同......第一行的资源路径不对。当浏览器上设置代理请求时把整个url都作为资源路径了,所以我们要把域名删掉,然后代理服务器在把修改后的请求发送给目标 web服务器。就这么简单,当然CONNECT方法特别,要特别对待,所以先说其他方法。 基本的思路: 1、代理服务器运行监听,当有客户端浏览器请求到来时通过accept()获得client句柄(或者叫描述符); 2、利用client描述符接收浏览器发来的request,分离出第一行为了修改第一行和获得method, 要去掉的的部分,除去http://的部分用targetHost表示吧。 3、通过第2步能够获得方法method、request和targetHost,这一步可以根据不同的method做不同的处理, 由于GET、POET、PUT、DELETE等除了CONNECT处理基本一致,所以处理首行,比如: 代码如下: GET http://www.a.com/ HTTP/1.1 替换为 GET / HTTP/1.1