HTTP协议详解
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
HTTP协议主要有三个特点:
1.无连接:每次连接只能处理一个请求。
2.媒体独立:只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。
3.无状态:对事物的处理能力是没有记忆能力的。
HTTP协议的使用:
HTTP主要使用URI(统一资源标识符 -- Uniform Resource Identifiers)来传输数据和建立连接。
HTTP协议的消息结构:
客户端请求消息:请求行(request line)、请求头部(header)、空行和请求数
据四个部分组成,下图给出了请求报文的一般格式。
服务器响应消息:状态行、消息报头、空行和响应正文。
HTTP请方法:
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
方法详解:
GET:指定请求页面信息,返回实体主体。数据包含在请求头中。
HEAD:类似GET,但是返回的响应消息中没有内容,只有头部信息。
POST:向指定资源提交数据进行处理,数据包含在请求体中,可以导致新的资源建立或已有的资源修改。
PUT:从客户端想服务器传送的数据取代指定的文档内容。
DELETE:请求服务器删除指定的页面。
CONNECT:能够将连接改为管道方式的代理服务器。
OPTIONS:允许客户端查看服务器的性能。
TRACE:回显服务器收到的请求,主要用于测试或诊断。
HTTP协议响应头解析
Allow : 支持哪些方法,比如 PUT,GET,POST...
Content-Encoding:文档的编码方法,gzip
Content-Length:文档的内容长度。
Content-Type:文档类型。默认为text/plain ,一般需要显示指定为 text/html
DATE:当前的GMT时间。
Expires:文档过期时间
Last-Modified:最后的修改时间
Location:客户应去哪里提取文档。
Refresh:标明浏览器多长时间刷新一次文档。
Server:服务器名字,一般不指定。
Set-Cookie:设置和页面相关的Cookie数据。
WWW-Authenticate:客户应该在Authorization头中提供什么类型的授权信息。
HTTP协议的Content-Type:
Content-Type:内容类型。用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。
HTTP状态码:
HTTP状态码分为五种类型:
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** |
服务器错误,服务器在处理请求的过程中发生了错误 |