在HTTP 1.1协议中,request和response头中都可选一个connection的头,决定当Client和Server通信时如何处理长链接。HTTP 1.1协议默认支持长链接,如果Client方不使用长链接,要在header中指明connection的值为close;Server方不想支持长链接,则在response中需要明确说明connection的值为close。只要有一方不使用长链接,则每个请求处理完就会断开连接,新请求必须创建新的TCP连接。
HTTP请求的组成:请求行、消息报头、请求正文。
Method Request-URI HTTP-Version CRLF
说明:
Method: 请求方法
Request-URI: 一个统一资源标识符
HTTP-Version: 请求的HTTP协议版本
CRLF: 回车和换行
请求方法列表:
GET: 请求获取Request-URI所标识的资源
POST: 在Request-URI所标识的资源后附加新的数据
HEAD: 请求获取由Request-URI所标识的资源的响应消息报头
PUT: 请求服务器存储一个资源,并用Request-URI作为其标识。
DELETE: 请求服务器删除Request-URI所标识的资源
TRACE: 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT: 保留以备将来使用
OPTIONS: 请求查询服务器的性能,或者查询与资源相关的选项和需求
HTTP的响应组成:状态行、消息报头、响应正文
状态行:HTTP-Version Status-Code Reason-Phrase CRLF
说明:
HTTP-Version: 服务器HTTP协议的版本
Status-Code: 服务器发回的响应状态代码
Reason-Phrase: 状态代码的文本描述
状态码:
1xx: 指示信息,请求已接收,继续处理
2xx: 成功,请求已被成功接收、理解、接受。
3xx: 重定向,要完成请求必须进行更进一步的操作
4xx: 客户端错误,请求有语法错误或请求无法实现
5xx: 服务器端错误,服务器未能实现合法的请求
常用状态码:
200 OK: 客户端请求成功
400 Bad Request: 客户端请求有语法错误,不能被服务器所理解
401 Unauthorize: 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden: 服务器收到请求,但是拒绝提供服务
404 Not Found: 请求资源不存在。
500 Internal Server Error: 服务器发生不可预期的错误
503 Server Unavailable: 服务器当前不能处理客户端的请求,一段归真返璞可能剧务正常。