HTTP请求消息
GET /somedir/page.html HTTP/1.1 // 请求行有3个字段:方法字段(GET 、POST、HEAD)、URL字段、HTTP版本字段
Host: www.someschool.edu // 指定请求存放对象的主机
Connection: close // 告诉服务器不想使用持久连接,服务器发出请求的对象后应关闭连接。尽管是HTTP/1.1版本它还是不想使用持久连接
User-agent: Mozilla/4.0 // 用户代理,即产生当前请求的浏览器类型(服务器可以给不同类型的浏览器发送同一个对象的不同版本)
Accept-language: fr // 如果请求对象有法语版本,用户接收这个版本, 没有的话那么服务器应该发送默认版本
(额外的回车符和换行符)
附属体 // 如果是POST请求(适用于用户填写表单场合),那么请求消息附属提中包含的是用户填写在表单各个字段中的值
HTTP响应消息
HTTP/1.1 200 OK // 状态行3个字段:协议版本字段、状态码字段、原因短语字段
Connection : close // 服务器告诉客户自己将在发送完本消息后关闭TCP连接
Date: Thu, 06 Aug 1998 12:00:15 GMT // 服务器创建并发送本响应消息的日期时间,即把对象从其文件系统中取出,插入响应消息中并发出去的时间
Server : Apache/1.3.0 (Unix) // 本消息由Apache Web服务器产生
Last-Modified: Mon, 22 Jun 1998 09:23:14 GMT// 对象本身的创建或最后修改时间。这个头部对于对象的高速缓存至关重要
Content-Length: 6821 // 所发送对象的字节数
Content-Type: text/html // 包含在附体中的对象是HTML文本。对象的类型是由Content-Type头部决定而不是由文件扩展名指出
(数据,数据,数据..................................)
注意:如果服务器收到一个HTTP/1.0的请求,那么它即使是一个HTTP/1.1服务器,也不会使用持久连接。相反,这样的HTTP/1.1服务器会在发出所有请求的对象后关闭TCP连接。
响应代码:
200 OK: 请求成功,所请求信息在响应消息中返回。
301 Moved Permanently: 所请求的对象已经永久性迁移。新的URL在本响应消息的Location:头部指出。客户软件会自动请求这个新的URL。
400 Bad Request: 标示服务器无法理解响应请求的普遍错误的状态码
404 Not Found: 服务器上不存在所请求的文档
505 HTTP Version Not Supported:服务器不支持所请求的HTTP协议版本