HTTP消息格式
HTTP/1.0 请求消息的格式为:
?请求消息 = 请求行(通用信息|请求头|实体头) CRLF[实体内容]
?请求行 = 方法 请求URI HTTP版本号 CRLF
?方法 = GET|HEAD|POST|扩展方法
?URL = 协议名称+宿主名+目录与文件名
?请求行中的方法描述指定资源中应该执行的动作,常用的方法有GET、HEAD和POST。不同的请求对象对应GET的结果是不同的,对应关系如下:
?对象 GET的结果
?文件 文件的内容
?程序 该程序的执行结果
?数据库查询 查询结果
?GET??? — 浏览器要求从服务器处获得信息。
?HEAD — 要求服务器查找某对象的头信息,而不是对象本身。
?POST — 从客户机向服务器传送数据,在要求服务器和CGI做进一步处理时会用到POST方法。POST主要用于发送HTML文本中FORM的内容,让CGI程序处理。
?PUT — 浏览器要求将消息中所包含的消息实体写入服务器。
?一个请求的例子为:
?GET http://www.huawei.com.cn/chinese/index.html HTTP/1.0
?头信息又称为元信息,即信息的信息,利用元信息可以实现有条件的请求或应答 。
?请求头——告诉服务器怎样解释本次请求,主要包括用户可以接受的数据类型、压缩方法和语言等。
?实体头——实体信息类型、长度、压缩方法、最后一次修改时间、数据有效期等。
?实体——请求或应答对象本身。
?
?
HTTP/1.0的响应消息格式如下:
?响应消息=状态行(通用信息头|响应头|实体头) CRLF 〔实体内容〕
?状 态 行=HTTP版本号 状态码 原因叙述
?状态码表示响应类型
?1×× 保留,已接收到请求消息,正在处理中。
?2×× 表示请求成功地接收,对接收到的请求消息已成功地作出响应。
?3×× 为完成请求客户需进一步细化请求,表示必须采取进一步的行动才能完成请求。例如,请求消息中的URI对应多个资源,或请求消息要访问的资源的URI已改变,或必须通过代理服务器才能访问等。
?4×× 客户浏览器错误,请求消息语法错误或请求无法执行。
?5×× 服务器错误 ,服务器无法执行一个有效的请求。
?响应消息的状态行之后是与请求消息类似的、由各种字段名和字段值组成的消息头,响应头的信息包括:服务程序名,通知客户请求的URL需要认证,请求的资源何时能使用。
?对于响应消息,常用的字段有:
?通用消息头:Date
?响应消息头:Server、www-Authenticate、Location
?实体消息头:Allow、Content-Encoding、Content-Length、Content-Type、Expires、Last-Modified
?响应消息最后的实体(Message-Body)部分是服务器按照浏览器的请求传送回来的数据,最常见的情况就是一个网页文件的内容。
?
?
?
HTTP Cookie的设置应在HTTP回应的头(Header)中。它的格式如下,
?Set-Cookie: name = VALUE; expires = DATE;
?path? = PATH;??? domain = DOMAIN_NAME;?? secure? =
?其中NAME=VALUE可以设置为一系列的数据,expires 设置此Cookie的超期日期,日期的格式是 Wdy,DD-Mon-YYYY HH:MM:SS GMT. 当不设置超期日期时,Cookie只适用于本进程。path是所设置的URL,domain是设置的域名。对所设域名的限制是至少设为两级域名,如“hello.com”,设置顶级域名如".com",是无效的。secure 是指Cookie传输的安全性,如果设置了,则只能在访问HTTPS时传输。
?由客户软件到服务器的Cookie的发送格式为
?Cookie: NAME1=OPAQUE_STRING1; NAME2=OPAQUE_STRING2 ...