1. 什么是HTTP?
-
HTTP
是hypertext transfer protocol
(超文本传输协议)的简写,它是TCP/IP
协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。
HTTP协议的版本:HTTP/1.0
、HTTP/1.1
HTTP/1.0
:客户端与web服务器建立连接后,只能获得一个web资源。
HTTP/1.1
:客户端与web服务器建立连接后,在一个连接上获得多个web资源。
2. 完整的HTTP请求?
-
一个请求行
-
若干请求头
-
以及实体内容
-
常见请求头(客户端告知服务器)
Header | 示例 | 解释 |
---|---|---|
Accept | text/html、image/* | 客户端支持的数据类型 |
Accept-Charset | ISO-8859-1 | 客户端采用的编码 |
Accept-Encoding | gzip、compress | 客户端支持的数据压缩格式 |
Accept-Language | en-us、zh-cn | 客户端的语言环境 |
Host | www.baidu.com:80 | 客户端想访问的主机名 |
If-Modified-Since | Tue, 11 Jul 2000 18:23:51 GMT | 资源缓存的时间 |
Referer | http://www.baidu.com | 客户端从哪个资源来访问服务器的(防盗链) |
User-Agent | Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) | 客户端的软件环境 |
Cookie | - | - |
Connection | close/Keep-Alive | 访问后是否关闭连接 |
3. 完整的HTTP响应?
- 一个状态行
- 若干消息头
- 以及实体内容
- 状态码
- 状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类:
状态码 | 含义 |
---|---|
100~199 | 表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程 |
200~299 | 表示成功接收请求并已完成整个处理过程,常用200 |
300~399 | 为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址,常用302、307、304 |
400~499 | 客户端的请求有错误,常用404 |
500~599 | 服务器端出现错误,常用 500 |
- 常见消息头(服务器告知客户端)
Header | 示例 | 解释 |
---|---|---|
Location | http://www.baidu.com | 配合302状态码使用,告诉客户找谁(重定向) |
Server | apache tomcat | 告知服务器的类型 |
Content-Encoding | gzip | 数据的压缩格式 |
Content-Length | 80 | 告知回送数据的长度 |
Content-Language | zh-cn | 数据的语言编码 |
Content-Type | text/html; charset=GB2312 | 数据类型与编码 |
Last-Modified | Tue, 11 Jul 2000 18:23:51 GMT | 告知客户端当前资源缓存时间 |
Refresh | 1;url=http://www.baidu.com | 告知客户端隔多长时间刷新一次 |
Content-Disposition | attachment; filename=aaa.zip | 告知客户端以下载方式打开数据 |
Transfer-Encoding | chunked | 告知浏览器的数据传送格式 |
Set-Cookie | SS=Q0=5Lb_nQ; path=/search | 设置cookie |
ETag | W/"7777-1242234904000" | 缓存相关的头 |
Expires | -1 | 告知客户端回送的数据缓存时间,-1或0是不缓存 |
Cache-Control | no-cache | 告知客户端不缓存 |
Pragma | no-cache | 告知客户端不缓存 |
4. 前端与后端交互过程(客户端与服务器)
完整http请求与响应头信息、状态码 参考
http://tool.oschina.net/
http://tools.jb51.net/table/http_header
http 参考
网友评论