Linux服务器--HTTP

1.HTTP代理服务器的工作原理

在HTTP通信链上,客户端和目标服务器之间通常存在某些中转代理服务器,它们提供对目标资源的中转访问。一个HTTP请求可能被多个代理服务器转发,后面的服务器称为前面服务器的上游服务器。代理服务器按照其使用方式和作用,分为正向代理服务器、反向代理服务器、透明代理服务器

  • 正向代理服务器:要求客户端自己设置代理服务器的地址。客户的每次请求都将直接发送到该代理服务器,并由代理服务器来请求目标资源。比如处于防火墙内的局域网机器要访问Internet,或者要访问一些被屏蔽掉的国外网站,就需要使用正向代理服务器。
  • 反向代理服务器:被设置在服务器端,因而客户端无须进行任何设置。反向代理服务器来接收Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从内部服务器上得到的结果返回给客户端。在这种情况下,代理服务器对外就表现为一个真实的服务器。
  • 透明代理:只能设置在网关上。用户访问Internet的数据报必然都经过网关,如果在网关上设置代理,则该代理对用户来说显然是透明的。透明代理可以看作正向代理的一种特殊情况。

这里写图片描述

ps:代理服务器通常还提供缓存目标资源的功能(可选),这样用户下次访问同一资源时速度将很快。

2.HTTP通信

2.1HTTP请求

以下面请求为例:

GET http://www.baidu.com/index.html HTTP/1.0
Uaer-Agent: Wget/1.12(linux-gun)
Host:www.baidu.com
Connection:close
  • 第一行为请求行。GET为请求方法,表示客户端以只读的方式来申请资源。以下为常见的HTTP请求方法:
    这里写图片描述

    HEAD,GET,OPTIONS,TRACE被视为安全的方法,因为它们只是从服务器获得资源或信息,而不对服务器进行修改。
    GET,HEAD,OPTIONS,TRACE,PUT,DELETE等被认为是等幂的,即多次连续的、重复的请求和只发送一次该请求具有完全相同的效果。

  • http://www.baidu.com/index.html ” 是目标资源的URL,其中“http”是所谓的scheme,表示获取目标资源需要使用的应用层协议。其他常见的还有ftp,rtsp,file等。“www.baidu.com”指定资源所在目标主机。“index.html ”指定资源文件的名称。

  • “HTTP/1.0”表示客户端使用的HTTP的版本号。

HTTP请求内容中的第2-4行都是HTTP请求的头部字段。一个HTTP请求可以包含多个头部字段,一个头部字段用一行表示,包含字段名称,冒号,空格,和字段值。HTTP请求中的头部字段可按任意顺序排列。

  • “Uaer-Agent: Wget/1.12(linux-gun)”表示客户端使用的程序是wget。
  • “Host:www.baidu.com”表示主机名是www.baidu.com.
  • “Connection:close”是执行wget命令时传入的。用以告诉服务器处理完这个HTTP请求之后就关闭连接。

在所有头部字段之后,HTTP请求必须包含一个空行,以标识头部字段的结束。请求行和每个头部字段都必须以回车符换行符结束。
空行之后,HTTP请求可以包含可选的消息体。如果消息体非空,则HTTP请求的头部字段中必须包含描述该消息体长度的字段“Content-Length”。

2.2HTTP应答

以下面应答为例:

HTTP/1.0 200 OK
Server:BWS/1.0
Content-Length8024
Content-Type:text/html;charset = gbk
Set-Cookie:BAIDUID=A5B6C72D68CF639CE8896FD79A03FBD8:FG:=1;expires=Wed,04 - Jul-42              
            00:10:47  GMT; path=/;domain=.baidu.com
Via:1.0 localhost (squid/3.0  STABLE18)
  • 第一行是状态行。“HTTP/1.0”是服务器使用的HTTP协议的版本号。通常,服务器和客户端需要使用相同的HTTP协议版本。“200 OK”是状态码和状态信息。常见的状态码和状态信息:
    这里写图片描述

    第2-7行是HTTP应答的头部字段,与请求中的头部字段相同。

  • “Server:BWS/1.0”表示目标Web服务器程序的名字是BWS。

  • “Content-Length:8024”表示目标文档的长度为8024字节
  • “Content-Type:text/html;charset = gbk”表示目标文档MIME类型。其中“text”是主文档类型,“html”是子文档类型。“charset”是文档类型的一个参数,用于指定文档的字符编码。
  • “Set-Cookie:BAIDUID=A5B6C72D68CF639CE8896FD79A03FBD8:FG:=1;expires=Wed,04 - Jul-42
    00:10:47 GMT; path=/;domain=.baidu.com”表示服务器传送一个Cookie给客户端,其中“BAIDUID”指定Cookie的名字,“expires”指定Cookie的生存时间,“domain”和“path”指定该Cookie生效的域名和路径。
  • “Via:1.0 localhost (squid/3.0 STABLE18)”表示HTTP应答在返回过程中经历过的所有代理服务器的地址和名称。

在所有头部字段之后,HTTP请求必须包含一个空行,以标识头部字段的结束。请求行和每个头部字段都必须以回车符换行符结束。
空行之后,是被请求文档inde.tml的内容。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值