Http协议响应的解析
来源:互联网 发布:奇点大学 知乎 编辑:程序博客网 时间:2024/05/17 08:11
在接受到一个请求后,服务器会返回一个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>
阅读全文
0 0
- Http协议响应的解析
- Http协议的请求和响应解析
- http协议的响应
- HTTP协议常见的响应
- HTTP协议的解析
- HTTP的协议解析
- HTTP协议解析之HTTP 响应(转)
- HTTP协议 HTTP响应
- http协议的请求与响应
- HTTP协议 请求响应的 结构认识
- HTTP协议的请求和响应信息
- HTTP协议的请求与响应
- HTTP协议的请求和响应格式
- http协议响应知识
- HTTP协议之响应
- http协议:响应码
- HTTP协议之响应
- HTTP协议之响应
- 【湘大oj】1173-(立方和)
- POJ 1632 Vase collection 笔记
- Python列表解析配合if else
- MFCC & PLP
- 1002 数塔取数问题
- Http协议响应的解析
- 《并发编程》读书笔记1
- 翻译-关于为什么没有ArcSDE10.3
- python shell 清屏
- 洛谷OJ-P1219 八皇后-深度优先搜索
- 线程辅助类(四)--CyclicBarrier
- 基于android studio 的按键震动程序的实现
- BeanUtils工具使用
- 前端学习之JavaScript(二)