0. HTTP协议的主要特点:
- 无连接:限制每次链接之处理一个请求。Server端处理完Client的请求,并受到Client的应带之后,就断开连接。
- 无状态:HTTP是无状态协议。无状态的是指协议对于事务处理没有记忆能力。也就是意味着 如果后续处理需要处理前面的信息,则他必须重传。
1. 请求过程
-
请求行
- 请求方法:GET
- URL字段:/example.html
- HTTP协议版本: HTTP/1.1
-
请求头
- Accept
用于指定Client接收那些类型的信息。eg: Accept:image/gif 表明客户端希望接收GIF格式资源。 - Accept-Charset:
用于表示Client接受的字符集。如果缺省,表示Client是任何字符集都接收。eg:Accept-Charset:gb2312 - Accept-Encoding:
可接收的内容编码。如果没有指定,表示Client对各种编码都可以接受。eg:Accept-Encoding:gzip - Accept-Language:
用于指定一种自然语言。如果没有指定,表示Client对各种语言都可以接受。 - Authorization:
用于证明Client有权查看某个资源。当Client请求某个资源的时候,如果Server返回401(未授权),那么可以发送一个请求头包含Authorization的请求,要求Server对其验证。 - Host:(必须)。用于指定请求的主机和端口。
- User-Agent:
操作系统、浏览器的属性。
- Accept
-
请求体
只有发送POST请求的时候才有请求正文,Get方法没有请求正文。
GET /hope/ HTTP/1.1 //---请求行
Host: ce.sysu.edu.cn
Accept: */*
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.6
Cache-Control: max-age=0
Cookie:.........
Referer: http://ce.sysu.edu.cn/hope/
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36
---分割线---
POST /hope/ HTTP/1.1 //---请求行
Host: ce.sysu.edu.cn
Accept: */*
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.6
Cache-Control: max-age=0
Cookie:.........
Referer: http://ce.sysu.edu.cn/hope/
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36
...body...
2. 响应过程
-
状态行
- HTTP协议 : HTTP/1.1
- 状态码 : 200
- 对状态码的文本描述 : OK
eg:
状态码HTTP/1.1 200 OK (CRLF)
常见状态码1xx: 指示信息。请求已被接受,继续处理。 2xx:成功。 3xx:重定向。要完成请求必须进一步操作。 4xx:客户端错误。请求有语法错误。 5xx:服务器端错误。
200 OK //客户端请求成功 400 Bad Request //客户端请求有语法错误,不能被服务器所理解 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报 //头域一起使用 403 Forbidden //服务器收到请求,但是拒绝提供服务 404 Not Found //请求资源不存在,eg:输入了错误的URL 500 Internal Server Error //服务器发生不可预期的错误 503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后,可能恢复正常
- 消息报头
- 响应正文
参考
网友评论