zoukankan      html  css  js  c++  java
  • HTTP报文

    HTTP就像是因特网的信使,而报文就是信使用来传递东西的包裹。HTTP报文时在HTTP的应用程序之间发送的数据快,这些数据块是以文本形式的元信息开头。

    每条报文都包含一条来自于客户端的请求,或者是来自于服务器的响应,她们有三个部分组成:对报文进行描述的起始行(start line)、包含属性的首部(header)、以及可选的,包含数据的主题(body)

    (图片来自HTTP权威指南)

    下面是我们打开百度网页时候的请求报文:


    请求:            GET / HTTP/1.1
    Accept:            text/html, application/xhtml+xml, */*
    Referer :          http://www.baidu.com/s?    wd=www.baidu.com&rsv_bp=1&tn=baidu&ie=utf-8&inputT=3564&f=8&bs=www.baidu.com&rsv_sug4=537&rsv_sug1=2
    Accept-Language:    zh-Hans-CN,zh-Hans;q=0.8,en-US;q=0.5,en;q=0.3
    User-Agent :        Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
    Accept-Encoding:     gzip, deflate
    Host :          www.baidu.com
    DNT :          1
    Connection:       Keep-Alive
    Cookie:                          BD_UPN=11253144; BD_CK_SAM=1; BAIDUID=B7687C3B057C631C785FD8E4115F2AA5:FG=1;     H_PS_PSSID=6623_1422_7570_7800_6996_7828_7729_7781_6506_6017_7825_7674_7892_7607_7799_7632_7836_7687_7803_7475

    响应报文:
    响应 :          HTTP/1.1 200 OK


    Date:          Sat, 26 Jul 2014 06:33:00 GMT
    Content-Type:     text/html; charset=utf-8
    Transfer-Encoding:  chunked
    Connection:       Keep-Alive
    Cache-Control:    private
    Cxy_all :                 baidu+f1c540f07047b27eba5362fd7cf3a8e4
    Expires :       Sat, 26 Jul 2014 06:32:15 GMT
    X-Powered-By:    HPHP
    Server :        BWS/1.1
    BDPAGETYPE :    1
    BDQID:         0xd7bc10d90008f47a
    BDUSERID :      0
    Set-Cookie:         BDSVRTM=0; path=/

    用Python 抓取的信息:

    ---------------------header---------
    Date: Sat, 26 Jul 2014 06:09:17 GMT
    Content-Type: text/html; charset=utf-8
    Transfer-Encoding: chunked
    Connection: Close
    Vary: Accept-Encoding
    Set-Cookie: BAIDUID=6D419D997AAD0E547B96E6FC84718F41:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
    Set-Cookie: BDSVRTM=0; path=/
    P3P: CP=" OTI DSP COR IVA OUR IND COM "
    Cache-Control: private
    Cxy_all: baidu+9b70894ee1674161ea842a5717aff56d
    Expires: Sat, 26 Jul 2014 06:08:36 GMT
    X-Powered-By: HPHP
    Server: BWS/1.1
    BDPAGETYPE: 1
    BDQID: 0xfcb39f4700088171
    BDUSERID: 0
    

     Content-Type用于说明  主体是什么,例子中为HTML,

    ---------起始行

    1、请求行

    请求报文请求服务器对资源进行一些操作,请求报文的起始行成为请求行。他包含了一个方法和一个请求的url.

    2、响应行

    响应报文的起始行称为响应行,它包含一个请求报文使用的HTTP版本,数字状态码等。

    --------首部

    首部就是跟在起始行后面的键值对。我们可以在上面请求百度的例子中看到。

    安全方法:

    HTTP定义了一组被称为安全方法的方法,GET方法和HEAD方法都被认为是安全的,这意味着使用GET或HEAD方法的HTTP请求都不会产生什么动作,也就是HTTP请求不会在服务器上产生什么结果。需要理解的是,安全方法并不是什么动作都不执行(实际上,这是有Web开发者决定的),使用安全方法的目的就是允许HTTP应用程序开发者通知用户,什么时候会使用某个可能引发某些动作的不安全的方法)

  • 相关阅读:
    SQL Server 错误日志过滤(ERRORLOG)
    SQL Server 错误日志收缩(ERRORLOG)
    (原)Max Area of Island(即连通域标记)
    (原)caffe中的conv
    (整理)plsql导入dmp文件
    (原)matlab导出oracle中blob的jpg数据到图片
    (原)faster rcnn的tensorflow代码的理解
    (原)tensorflow使用eager在mnist上训练的简单例子
    (原)DropBlock A regularization method for convolutional networks
    (原)netbeans中添加anaconda3安装的opencv
  • 原文地址:https://www.cnblogs.com/CBDoctor/p/3870160.html
Copyright © 2011-2022 走看看