http代理的原理简单描述

客户端>>>服务器
客户端发送request给服务器,socket在建立时就已经指定了host,port,所以request表头中不包含服务器地址,但有path,服务器接受到request,返回response,客户端通过inputstream读取response
添加图片注释,不超过 140 字(可选)
客户端>>>代理>>>服务器
客户端发送request给代理服务器,socket在建立时指定的是代理服务器的host,port,所以request表头中是包含了目标服务器的地址,以及path,其他的信息与一般的http请求一致,代理服务器收到请求,解析目标服务器的地址,往它发送request,这个时候代理服务器就相当于客户端,代理服务器收到目标服务器的response,再把这个response返回给客户端。
用更形象的说法就是A喜欢B,想*她,A写了情书,但不好意思亲自递给B,所以A就把情书给了和B关系比较好的C,C收到情书,再把情书递给B,B把自己的决定说给C,C把B的决定说给A。
添加图片注释,不超过 140 字(可选)
如果代理有问题。有两个情况,一是连接代理创建socket成功,但发送失败,或者没有发送,因为客户端把请求给代理,代理做什么我们不知道,他甚至可以直接发个图片给你,这个就不是真正的代理。所以客户端可能收到错误的信息,或者超时,或者异常(如connect reset),服务器没有收到任何请求。二是连接代理失败。