设为首页 加入收藏

TOP

HTTP协议详解(三)
2012-02-22 13:24:36 】 浏览:9925
Tags:HTTP 协议 详解
http://www.guet.edu.cn/index.html浏览器会把Host请求报头域加上,该域值为www.guet.edu.cn。 此处使用缺省端口号80,若指定了端口号,则变成:Host:www.guet.edu.cn:指定端口号
  • User-Agent:我们上网登陆论坛的时候,往往会看到一些欢迎信息,可能会列出了你当前的操作系统名称和版本,你当前所使用的浏览器名称和版本。这往往让很多人感到很神奇。实际上,服务器应用程序就是从User-Agent这个请求报头域中获取这些信息。User-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉浏览器。不过,这个报头域不是必需的,如果我们自己编写一个浏览器,不使用User-Agent请求报头域,那么服务器端就无法得知我们的信息了。但通常浏览器都会带上这个请求包头域
  • 一个典型的请求包头如下:

     

    01
    GET /form.html HTTP/1.1 (CRLF)
    02
    Accept:image/gif,image/x-xbitmap,image/jpeg,application/x-shockwave-flash,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword,*/* (CRLF)
    03
    Accept-Language:zh-cn (CRLF)
    gzip,deflate (CRLF)
    04
    Accept-Encoding:
    05
    If-Modified-Since:Wed,05 Jan 2007 11:21:25 GMT (CRLF)
    "80b1a4c018f3c41:8317" (CRLF)
    06
    If-None-Match:W/
    07
    User-Agent:Mozilla/4.0(compatible;MSIE6.0;Windows NT 5.0) (CRLF)
    08
    Host:www.guet.edu.cn (CRLF)
    09
    Connection:Keep-Alive (CRLF)
    10
    (CRLF)

     

     


     

    3) 响应报头
        响应报头允许服务器传递的附加响应信息,以及关于服务器的状态信息以及对Request-URI所标识的资源进行下一步访问的信息。常用的响应报头有: 

    • Location: 用于提示客户端重定向到一个新的位置。Location响应报头域常用在更换域名的时候。

     

    • Server: 包含了服务器用来处理请求的软件信息。比如Server: Play! Framework; 1.2.3; prod, 表示处理本次请求的应用程序是一个用Play ! Framework 1.2.3搭建的应用服务程序,该程序处于生产模式.
    • Connection: 
    • Proxy-Connection: 
    • Set-Cookie:  cookie信息

     

      

    4)  实体报头
            请求和响应消息都可以传送一个实体。一个实体由实体报头域和实体正文组成,但并不是说实体报头域和实体正文要在一起发送,可以只发送实体报头域
    。实体报头定义了关于实体正文(例如有无实体正文)和请求所标识的资源的元信息。常用的实体报头有:

    •  Content-Encoding:用于记录文档的压缩方法。比如 Content-Encoding:gzip
    •  Content-Language: 描述了资源所用的自然语言。ru没有设置该域, 则认为实体内容将提供给所有的语言阅读
    •  Content-Length:  用于指明实体正文的长度,单位字节, 十进制数表示
    • Content-Type: 指明发送给接收者的实体正文的媒体类型,比如Content-Type:text/html;charset=ISO-8859-1, 表示正文是一个html文档,采用ISO-8859-1编码
    •  Last-Modified: 用于指示资源的最后修改日期和时间。
    •  Expires: 给出响应过期的日期和时间。为了让代理服务器或浏览器在一段时间以后更新缓存中(再次访问曾访问过的页面时,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用Expires指定页面过期的时间。比如Expires:Thu,15 Sep 2006 16:23:12 GMT
    HTTP1.1的客户端和缓存必须将其他非法的日期格式(包括0)看作已经过期。例如,为了让浏览器不要缓存页面,我们可以将Expires设为0,jsp中程序如下:response.setDateHeader("Expires","0");

     

     五、利用telnet观察http协议的通讯过程

        实验目的及原理:
        利用MS的telnet工具,通过手动输入http请求信息的方式,向服务器发出请求,服务器接收、解释和接受请求后,会返回一个响应,该响应会在telnet窗口上显示出来,从而从感性上加深对http协议的通讯过程的认识。

        实验步骤:

    1、打开telnet
    1.1 打开telnet
    运行-->cmd-->telnet

    1.2 打开telnet回显功能
    set localecho

    2、连接服务器并发送请求
    2.1 open 
    www.guet.edu.cn 80  //注意端口号不能省略

        HEAD /index.asp HTTP/1.0
        Host:www.guet.edu.cn
        
       /*我们可以变换请求方法,请求桂林电子主页内容,输入消息如下*/
        open 
    www.guet.edu.cn 80 
       
        GET /index.asp HTTP/1.0  //请求资源的内容
        Host:www.guet.edu.cn  

    2.2 open www.sina.com.cn 80  //在命令提示符号下直接输入telnet www.sina.com.cn 80
        HEAD /index.asp HTTP/1.0
        Host:www.sina.com.cn
     

    3 实验结果:

    3.1 请求信息2.1得到的响应是:

    HTTP/1.1 200 OK                 &

    首页 上一页 1 2 3 4 5 下一页 尾页 3/5/5
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    上一篇TCP状态图 下一篇libevent C 事件通知接口函数库

    最新文章

    热门文章

    Hot 文章

    Python

    C 语言

    C++基础

    大数据基础

    linux编程基础

    C/C++面试题目