HTTP所采用的是请求/响应模型,HTTP消息有两种:请求(request)和响应(response).
这两种消息的组成都包括1)一个起始行(start line);2)零个或多个首部字段(header field);3)以及一个代表消息首部(message header)结尾的空行;4)这两种消息还可能包含一个可有可无的消息体(message body)。
请求和响应消息的格式及组成存在细微的差异。
HTTP request
HTTP请求的起始行就是请求行(request line),他包含三个字段:1)HTTP方法(get/post等);2)URI(universal resource identifier,统一资源标识符);3)HTTP协议版本(如图1所示)
图1:
执行用:telnet localhost 8887(此配置见telnet服务来登陆某主机的特定端口 <script type="text/javascript" language="javascript">document.title="telnet服务来登陆某主机的特定端口 - "+document.title</script> )
然后再输入:GET /index.html HTTP/1.0
键入此GET命令后,必须按两次Enter键:第一次表示请求行已结束;第二次是通知服务器你已经完成请求。
对request和response而言,header field's format 都一样,开始是首部字段名,接着冒号(:),然后是所包含的值,如果某个header field contains more than one value ,则必须以逗号隔开。
另:首部字段可以视为与消息体有关的元数据(metadata)
HTTP response
服务器接收到请求,并予以处理后,返回一个HTTP response message 给客户。响应的开头是状态行(status line),接下来是零个或多个首部字段,后面接着一个空行,此外,还可能会包含一个可有可无的消息体。
HTTP响应状态行示例:HTTP/1.1 200 ok
响应消息中的首部字段和请求消息中的首部字段格式类似,首部字段可以让服务器向客户传递无法放在状态行的额外信息。这些首部字段会提供关于服务器的信息,以及关于请求中所含URI进一步存取的信息。在最后的响应首部之后,会接一行空行,然后服务器可以插入响应的消息体。在大多数情况下,响应的消息体就是HTML格式的输出。
http://tb.blog.csdn.net/TrackBack.aspx?PostId=619076