现在的位置: 首页 > 综合 > 正文

HTTP协议中支持代理和压缩的相关字段

2012年11月07日 ⁄ 综合 ⁄ 共 872字 ⁄ 字号 评论关闭

以前一直搞不清http协议如何支持代理的,今天看了一下恍然大悟。

http协议有一个host字段。

如果我们想访问 http://www.sohu.com

一般就是 GET http://www.sohu.com HTTP/1.1

这样就直接连接www.sohu.com主机。如果host为www.sohu.com那么request-uri可以为相对路径,比如 GET /  HTTP/1.1

如果我们有个局域网代理服务器192.168.1.2 端口为80

//下面应该写错了,host应该与代理无关,??

那么我们在构造http请求的时候,就需要设置一下request-header中的host字段。

这样http协议就知道是向192168.1.2的80端口发送http请求,请求目标是http://www.sohu.com。

//---------------

我们只需要向

192.168.1.2 的80端口发起TCP连接,并将

GET http://www.sohu.com HTTP/1.1发送给它就可以了。

至于192.168.1.2如何帮我们拿到http://www.sohu.com,那么是它的事情了,管理员需要配置一台http代理服务器咯,有响应的代理协议。

我们知道http(超文本协议)的传输内容大多是文本的,如果能够进行压缩的话,那么就大大节省流量了。

为此http协议中有相关字段,比如Entity header中的content-encoding, General header中的transfer-encoding, 前者对应entity body,后者对应message body.

若没有后者的话,message body 与 entity body等价。

content-encoding, transfer-encoding的参数有chunked, gzip等。一般的http服务器都支持gzip压缩咯,多好阿。

因此在移动互联网时代,如果我们要快速开发,节省流量

建议用http协议,首先天然支持代理和压缩。

如果用原生的tcp协议的话,这些都需要自己额外进行开发工作。特别是代理较为麻烦。

抱歉!评论已关闭.