HTTP代理是什么
HTTP代理本质上是一个Web应用,它和其他普通Web应用没有根本区别。HTTP代理收到请求
Header中Host字段的主机名和Get/POST请求地址综合判断目标主机,建立新的HTTP请求并转发请求数据,并将收到的响应数据转发给客户端。
比如我有一个http代理: 187.12.190.250:8080
那么假如我需要请求http://www.ouwan.com/service/
这时候代理相当于我请求的服务器, 所以请求是 http://187.12.190.250:8080
curl http://187.12.190.250:8080/service/ -H "Host:www.ouwan.com" -i
HTTP/1.1 302 FOUND
Server: nginx
Date: Tue, 30 Jan 2018 04:26:06 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Location: http://m.ouwan.com/service/
可以看到这就是模拟代理的请求, 浏览器配置了187.12.190.250:8080 这个代理,想请求http://www.ouwan.com/service/ ,首先得请求这个 http://187.12.190.250:8080/service/ ,但是一样要注意加上Host -H "Host:www.ouwan.com" 这样才能让代理知道完整真实请求路径: 包括Host和路径