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>
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>
相关文章推荐
- HTTP协议解析之HTTP 响应(转)
- HTTP协议—常见的HTTP响应状态码解析
- Http协议的请求和响应解析
- Http协议响应状态码
- http请求和http响应详细解析
- HTTP协议之Chunked解析
- Http协议请求的解析
- Android开发之http协议解析
- Android版Web服务器实现(一)HTTP协议请求头解析
- Http协议:HTTP请求和响应
- HTTP超详细解析——01【协议详解】
- 摘要HTTP 请求响应协议初识
- 常见的HTTP响应状态码解析
- 解析HTTP协议六种请求方法,get,head,put,delete,post有什么区别
- HTTP协议解析
- http协议头部解析
- HTTP协议之响应部分 响应部分详解 响应部分分成三块内容
- http协议的响应
- HTTP协议解析
- HTTP协议解析