客户端发送的请求消息为字符流,由请求行(包括方法、统一资源标识符URI和HTTP协议版本)和头信息组成。
下面是一个合法的HTTP请求消息的例子。我们通过这个例子来大概了解一下HTTP请求消息。
GET /jytest/page/jsp02/easy.jsp
HTTP/1.1
Host:
localhost:8080
User-Agent:
Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-CN; rv:.11)
Accept:
text/html,application/xhtml+xml,application/xml,*/*
Accept-Language:
zh-cnAccept-Charset:
gb2312,utf-8
|
这里,请求行指定了用GET方法,访问一个名为/jytest/page/jsp02/easy.jsp的资源,并指定请求使用HTTP/1.1协议版本。
注意:请求的方法不光光只有GET,还有POST、HEAD、OPTIONS、DELETE、PUT、TRACE。其中,我们常用的是GET和POST方法,后边会详细讲解,其余的各个方法大家简单了解即可。
Host首部可以像服务器通知URL中所用的主机名。
User-Agent首部包含了发出请求的浏览器的类型相关信息。服务器可以使用此信息向不同类型的浏览器发送不同类型的响应。
Accept首部提供了浏览器所接受语言和文件格式的有关信息。这些首部可以用于针对浏览器的功能和用户的首选项(如使用某种所支持的图像格式和首选语言)对响应加以调整。
请求信息由服务器进一步处理,并生成相应的响应,响应消息由状态行和头信息组成。
下面是响应消息的事例。
HTTP/1.x
200 OK
Server:
Apache-Coyote/1.1
Content-Type:
text/html
Content-Length: 186
Date:
Wed, 17 Jun 2009 00:57:35 GMT
|
第一行为状态行,状态行中的状态码200只是已经成功处理请求,因此描述为“OK”。
注意:这里介绍下常见的状态码:404是找不到被请求的网页时常遇到的状态码;500是服务器内部错误;503是服务器超时等,如果想具体了解,http://www.w3c.org上有很详细的内容。
Server头部指定服务器软件。
Content-Type头部指定了文档的MIME类型,如果是“text/html”指示格式化的Web文档,如果是“text/plain”只是未格式化的文本文档。
Content-length头部指定文件的大小,以字节来表示。
以上,我们只是介绍了请求和响应消息中可能包括的少数首部。更加详细的介绍可以在http://www.w3c.org查看。