请求报文
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成
请求行(request-line):(GET /homepage.html HTTP/1.1)
请求方法(GET/POST)
请求资源路径(/homepage.html)
协议类型和版本(HTTP/1.1)
请求头部(header):若干消息头
content-teyp=text/html
Accept-Language: zh-cn,zh;q=0.5
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; 域名)
Host: www.baidu.com
Connection: Keep-Alive
空行(blank-line):
最后一个请求头之后是一个空行,分隔请求头
请求数据:消息体
这个部分不在GET方法中使用,在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求数据相关的最常使用的请求头是Content-Type和Content-Length。
响应报文
HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行、响应包体。
状态行(status-line):HTTP/1.1 200 OK(CRLF)
协议和版本(HTTP/1.1)
状态码(200)
状态码的描述(OK(CRLF))
消息包头:(header)
和请求报文header一样
空行(blank-line):
和请求报文空行一样
响应包体:(body)
返回的数据
ps: 状态码
1xx:表示服务器已接收了客户端请求,客户端可继续发送请求;
2xx:表示服务器已成功接收到请求并进行处理;
3xx:表示服务器要求客户端重定向;
4xx:表示客户端的请求有非法内容;
5xx:表示服务器未能正常处理客户端的请求而出现意外错误;
常见状态码:
200 OK:客户端请求成功。
400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
- 401 Unauthorized:请求未经授权,这个状态代码必须和WW-Authenticate报头域一起使用。
- 403 Forbidden:服务器收到请求,但是拒绝提供服务。
- 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
- 500 Internal Server Error:服务器发生不可预期的错误。
- 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。