HTTP协议基础

HTTP协议:(hypertext transfer protocol)--超文本传输协议,是TCP/IP协议族中应用层的协议,用于定义WEB服务器间的交换数据过程及数据本身的格式。目前版本:HTTP1.0 HTTP1.1 HTTP-NG(下一代版本)
 
一、HTTP的会话方式

     HTTP/1.0:
          1、建立连接
          2、客户端发送请求
          3、服务器响应请求
          4、关闭连接
         每次连接只能处理一个http请求,如要向服务器请求一个包含多图片的网页,需要建立多次连接。
     HTTP1.1
       特点:
       1、在一个TCP连接上可以传送多个HTTP请求和响应
       2、多个请求和响应可以重叠进行,也被称作管道(pipeline)
       3、增加了更多的请求头(如:Host)和响应头
  
二、HTTP消息

    1、请求消息:
            一个请求行、若干消息头、实体内容(消息头和实体内容是可选的,他们之间用空行隔开)

            请求行:
                   格式:请求方式 资源路径 HTTP/版本号(回车换行)
                  请求方式:POST、HEAD、OPTIONS、DELETE、TRACE、PUT

           例如:
           GET/books/java.html HTTP/1.1   ---请求行
           Accept: */*         ----消息头
           Accept-Language: en-us     ----消息头
           Connection: Keep-Alive      ----消息头
           Host: localhost        ----消息头
           Referer: http://localhost/links.jsp   ----消息头
           User-Agent: Mozilla/4.0      ----消息头
           Accept-Encoding: gzip,deflate    ----消息头
                                                                     ------空行
              
   2、响应消息
           一个状态行、若干消息头、实体内容(消息头和实体内容是可选的,他们之间用空行隔开)

           状态行:
                    格式: HTTP/版本号 状态码 原因叙述(回车换行)


           例如:
           HTTP/1.1 200 OK       ---状态行
           Server: Microsoft-IIS/5.0      ----消息头
           Date: Thu,13 Jul 2000 05:44:22 GMT  ----消息头
           Content-Length: 2291      ----消息头
           Content-Type: text/html     ----消息头
           Cache-control: private      ----消息头
                                                         ------空行
           <HTML>          -----实体内容
           <BODY>
            .....
   
GET方式的请求消息中不包含实体内容,只有POST、PUT、DELETE方式的请求消息中才可以包含实体内容
在HTTP1.1中,如果消息中包括实体内容,并且没有采用chunked传输编码方式,那么消息头重必须包含内容长度的字段,否则客户端或服务器程序就无法知道实体内容何时结束。

在HTTP协议中,还可以使用简单的请求消息和响应消息。简单消息没有消息头部分,并且简单请求消息只能使用GET方式,且请求行中不包含HTTP版本号,简单响应消息中只包含实体内容
 
三、HTTP消息头:(格式:头字段名称,然后是冒号、空格、值、回车换行)
      消息头按用途的分类:通用信息头、请求头、响应头、实体头、扩展头
              1、通用信息头:既能用于请求消息也能用于响应消息
                            Cache-Control: no-cache   (是否缓存消息)
                            Connection: close (是否保持连接)
                            Date: Tue,11 Jul 2010 18:18:18 GMT
                            Pragma: no-cache  (HTTP1.0中的指示是否缓存消息)
                            Trailer: Date  (表示Date消息头在实体内容之后)
                            Transfer-Encoding: chunked  (将实体内容分段传送,并在每段内容前加上一个16进制的数字表示分段的大小,最后一个分段大小必须为0,表示实体内容结束)
              2、请求头
                              Accept: text/heml,image/*   (客户端能够接受的数据类型)
                              Accept-Charset: ISO-8859-1,unicode-1-1  (客户端能够接受的字符集编码)
                              Accept-Encoding: gzip,compress  (客户端能够解码的数据编码方式,多为压缩编码)
                              Accept-Language: en-gb,zh-cn   (客户端接受的语言种类)
                              Host: www.baidu.com:80
                              Authorization: Basic enh3ojeyMzQug
                              Range: bytes=100-600 (要求服务器端返回实体内容中100到600字节的内容,可用于断点续传)
                              Referer: http://www.baidu.com (表示该请求是从那个超连接发起)
                              User-Agent: Mozilla/4.0  (客户端浏览器种类)
               3、 实体头: 实体内容的元信息,描述了实体内容的属性。包括实体信息类型、长度、压缩方法、最后一次修改时间、数据有效期等。
                              Allow: GET,POST  (访问资源允许的方式)
                              Content-Encoding: gzip  (当前实体内容的数据压缩编码方式)
                              Content-Language: zh-cn  (当前实体内容的语言类型)
                              Content-length: 80  (实体内容的长度)
                              Content-Location: http://www.xxx.com/yyy.html  (响应内容所位于的真实位置)
                              Content-Range: bytes 100-600  (返回的部分实体内容是完整实体内容的100字节到600字节)
                              Content-Type: text/heml; charset=GB2312  (实体内容的MIME类型以及字符集编码)
                              Expires: Tue, 11 Jul 2000 18:18:18 GMT   (缓存过期时间)
                              Last_Modified: Tue, 11 Jul 2000 18:18:18 GMT   (最后更新时间)
                4、 扩展头:在HTTP消息中也可以使用规范里没有定义的头字段,既自定义HTTP头。目前流行的浏览器支持的常用扩展头有:Cookie、Set-Cookie、Refresh和Content-Disposition等
                              Refresh: 1   (在指定的时间(1S)之后进行刷新)
                              Refresh: 1; url=htp://www.xxx.com  (在指定时间后跳转到URL) 

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值