HTTP协议杂乱记录

1.    HTTP协议定义了客户端(浏览器,爬虫等)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传给客户端。它是万维网上能够可靠地交换文件(包括文本,声音,图像等各种多媒体文件)的重要基础。HTTP使用了面向连接的TCP作为运输层协议。保证了数据的可靠传输。但是HTTP协议本身是无连接的,这就是说虽然HTTP使用了TCP连接,但通信双方在交换HTTP报文之前不需要建立连接。

2.   HTTP协议是无状态的,就是说同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同,这种特性减缓了服务器的设计,使服务器更容易支持大量并发的HTTP请求

3. HTTP协议请求与响应过程:

用户在点击连接某个万维网文档时,HTTP协议首先要和服务器建立起一条TCP连接。这需要三次握手,当三次握手的前两部分完成后,万维网客户就把HTTP请求报文作为三次握手的第三个报文的数据发送给万维网服务器。服务器收到http请求后,就把所有请求的文档作为响应报文返回给客户。请求一个万维网文档所需时间应该是该文档的传输时间(与文档大小成正比)加上两倍往返时间RTT(一个RTT用于TCP连接,另一个RTT用于请求和接受万维网文档。


4. HTTP协议分为HTTP/1.0和HTTP/1.1:

HTTP/1.0的主要缺点就是请求一个文档就要两倍的RTT的开销。若一个主页上有很多链接的对象(如图片等)需要依次进行链接,那么每次链接下载都导致2*RTT的开销。另一种开销就是万维网客户和服务器为每次建立新的TCP连接都要分配缓存和变量。特别是万维网服务器往往同时服务于大量的客户请求,这样会导致万维网服务器的负担很重。

 HTTP/1.1 协议解决了这个问题,它使用持续连接。(即Keep-Alive模式) 即万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。这并不局限在传送同一页面上的链接的文档,而是只要这些文档都在同一服务器上就行。

5. HTTP协议的请求:
GET请求:返回需要请求的网页所指的任何信息
Head请求: 类似于Get请求,但服务器只返回指定文档的首部信息,该请求通常被用来测试超文本连接的正确性、可访问性和最近的修改
Post请求: 用来发送电子邮件、新闻或者发送能由交互用户填写的表格。使用Post请求时需要在报文首部Content-Length字段中指出Body的长度

6. HTTP响应由三部分组成:状态行,消息头,消息体
     爬虫中需要处理的状态: 200 OK 、3** 重定向 、4** 客户端错误
     响应头解析:
          Transfer-Encoding:传输格式 ,如果是trunked 则需要解码
          Content-Encoding : 记录文档压缩格式格式,一般为gzip 需要解压

7. HTTP协议怎样判断一个客户已经登录:

      通常的做法是即使不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。

     上述功能还需用到Session以及Cookies,下面链接可以帮助更深了解:

http://blog.csdn.net/call321/article/details/6921754

http://www.cnblogs.com/studyzy/archive/2008/05/06/1184341.html 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值