: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) |
04 | Accept-Encoding: | gzip,deflate (CRLF)
05 | If-Modified-Since:Wed,05 Jan 2007 11:21:25 GMT (CRLF) |
06 | If-None-Match:W/ | "80b1a4c018f3c41:8317" (CRLF)
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) |
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 & |