文档介绍:http 协议详解 HTTP 请求由三部分组成,分别是: 请求行,消息报头,请求正文。请求行( 格式): Method Request-URI HTTP-Version CRLF Method: 方法。 GET 请求获取由 Request-URI 所标识的资源。 POST 在 Request-URI 所标识的资源后附加新的数据。 HEAD 请求获取由 Request-URI 所标识的资源的响应消息报头。 PUT 请求服务器存储一个资源,并用 Request-URI 作为其标识。 DELETE 请求服务器删除由 Request-URI 所标识的资源。 TRACE 请求服务器回送收到的请求信息,主要用语测试或诊断。 CONNECT 保留将来使用。 OPTIONS 请求查询服务器的性能,或查询与资源相关的选项和需求。 Request-URI: 统一资源标识。 HTTP-Version : HTTP 的版本。 CRLF :回车换行。(\r\n) 例: GET / HTTP/ \r\n HTTP 响应在接收和解释请求消息后,服务器会返回一个 HTTP 响应消息。与 HTTP 请求类似, HTTP 响应也是三个部分组成,分别是: 状态行、消息报头、响应正文。状态行: 状态行由协议版本、数字形式的状态代码、及相应的状态描述,各元素之间以空格分隔。格式: HTTP-Version Status-Code Reason-Phrase CRLF 例如: HTTP/ 200 OK \r\n 状态代码: 状态代码由 3 位数字组成,表示请求是否被理解或被满足。状态描述: 状态描述给出了关于状态代码的简短的文字描述。状态代码的第一个数字定义了响应的类别, 后面两位没有具体的分类。第一个数字有五种可能的取值: - 1xx: 指示信息—表示请求已接收,继续处理。- 2xx: 成功—表示请求已经被成功接收、理解、接受。- 3xx: 重定向—要完成请求必须进行更进一步的操作。- 4xx: 客户端错误—请求有语法错误或请求无法实现。- 5xx: 服务器端错误—服务器未能实现合法的请求。状态代码状态描述说明 200 OK 客户端请求成功 400 Bad Request 由于客户端请求有语法错误,不能被服务器所理解。 401 Unauthonzed 请求未经授权。这个状态代码必须和 403 Forbidden 服务器收到请求, 但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因 404 Not Found 请求的资源不存在,例如,输入了错误的 URL 。 500 Internal Server Error 服务器发生不可预期的错误,导致无法完成客户端的请求。 503 Service Unavailable 服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。 HTTP 消息 HTT P 消息由客户端到服务器的请求和服务器到客户端的响应组成。请求消息和响应消息都是由开始行,消息报头( 可选的) ,空行(只有 CTLF 的行) ,消息正文( 可选的) 组成。对于请求消息,开始行就是请求行。对于响应消息,开始行就是状态行。消息报头 HTTP 消息报头包括普通报头、请求报头、响应报头、实体报头。每一个报头域都是由( 名字+ ":" +空