您的位置:首页 > 理论基础 > 计算机网络

Http协议响应的解析

2017-05-30 11:38 288 查看
        在接受到一个请求后,服务器会返回一个HTTP响应。HTTP响应由三部分构成,即状态行,相应报头和响应正文。

        1、状态行

        状态行由HTTP版本(HTTP-Version)、状态码(Status-Code)以及解释状态码的简单短语(Reason-phrase)三部分构成,请格式如下:

        HTTP-Version Status-Code Reason-phrase CRLF

        状态码由三位数字组成,共有5大类33种,其中第一个数字指定了响应类型,取值为1~5,后面两位没有具体的规定。

1xx:指示信息,如请求收到了或正在处理。

2xx:成功。

3xx:重定向。

4xx:客户端错误,如请求中含有错误的语法或不能正常完成。
5xx:服务器端错误,如服务器失效而无法完成请求。
        例如:

200:OK  成功
304:Not Modified  未修改
400:Bad Request  错误请求

404:Not Found  未找到
        典型的响应状态码解释如下:

200:表示请求成功,成功返回了请求的资源。
302/307:表示临时重定向,此时请求的文档已经临时移动到其他位置,该文档新的URL将在Location响应报头中给出。
401:表示浏览器访问的是一个受到密码保护的页面。
403:表示服务器收到请求,但拒绝提供服务。
404:表示找不到资源,即服务器上不存在浏览器请求的资源。
500:表示内部服务器错误,即服务器端的CGI、ASP、JSP等程序发生了错误。
503:表示服务器暂时性超载,不能处理当前的请求。
        状态行举例:

        HTTP 1.0 200 OK

        这是Web服务器应答的第一行,列出服务器正在运行的HTTP版本号和应答代码。代码''200 OK''表示请求完成。

        2、响应报头

        有了响应报头服务器就可以传递不能放在状态行中的附加响应信息,以及服务器的信息和对Request-URI所标识的资源进行下一步访问信息。

        常见的响应报头如下:

Allow:指出服务器所支持的请求方法,如GET、POST等方法。
Content-Encoding:指定文档的编码方法。
Content-Length:指定响应中数据的字节长度。
Content-Type:指定回送数据的MIME类型。
Date:指定发送HTTP消息的日期。
Last-Modified:指定返回数据的最后修改时间。
Location:重定向请求到一个新的URI地址。
Refresh:指定浏览器定时刷新时间。
Expires:指定浏览器缓存数据的时间。
Server:指定服务器名称,包含了处理请求的服务器使用的软件产品信息,与User-Agent请求报头相对应。
        3、响应正文

        响应正文是指服务器所返回的资源内容,如HTML页面。响应报头和响应正文之间必须使用空格分隔。

        一个典型的HTTP响应示例如下:

        HTTP/1.1 200 OK /*状态行*/
Connection:close /*连接状态*/
Date:Wed, 19 Nov 2017 02:20:45 GMT /*日期*/
Server:Apache/2.0.54(Unix) /*服务器*/
Content-Length:397 /*指定数据包含的字节长度*/
Content-Type:text/html /*指定返回数据的MIME类型*/
/*空行*/
<html>
<body>
/*数据*/
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息