概述
HTTP报文分为请求报文和响应报文。
HTTP响应报文格式
响应行\r\n
响应头\r\n
空行\r\n
响应体\r\n
原始报文
---- 响应行(状态行) -------- HTTP/1.1 200 OK #协议版本 状态码 状态描述 ---- 响应头 ---------- Accept-Ranges: bytes #表明服务器是否支持指定范围的请求,比如bytes,表明支持字节请求 Content-Encoding: gzip #编码方式 Content-Length: 1966 #服务器发送给客户端程序的数据确定长度,内容长度这两个选项只能二选一 Content-Type: image/x-icon #务器发送给浏览器的内容类型及编码格式 Date: Thu, 24 Feb 2022 06:58:07 GMT #服务器的时间 Etag: "423e-5bd257db4e500" #请求变量的实体标签的当前值 Last-Modified: Wed, 10 Mar 2021 02:33:24 GMT # 请求资源的最后修改时间 Server: Apache #服务器的名称 Vary: Accept-Encoding,User-Agent ----- 空行 ---- \r\n ----- 响应体 就是真正意义上给浏览器解析使用的数据---- 网页数据
常见状态代码、状态描述
- 200 OK:客户端请求成功。
- 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
- 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
- 403 Forbidden:服务器收到请求,但是拒绝提供服务。
- 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
- 500 Internal Server Error:服务器发生不可预期的错误。
- 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)
状态码 |
说明 |
200 |
请求成功 |
307 |
重定向 |
400 |
错误的请求,请求地址或者参数有误 |
404 |
请求资源在服务器不存在 |
500 |
服务器内部源代码出现错误 |