1.清单
2.简介
3.请求信息
4.响应消息
5.请求行和状态行
6.使用GET和POST方式传递参数
7.响应状态码
8.通用信息头
10.请求头
11.实体头
2.简介
超文本传输协议:web浏览器与web服务器之间交换数据的过程以及数据本身的格式。
版本:1.0,1.1,HTTP-NG(正在试验中)
会话:建立连接-发出请求信息-回送响应信息-关闭连接
2.1.1特点
在一个Tcp连接上可以传送多个HTTP请求和响应
多个请求和响应可以重叠进行
增加更多的请求头和响应头
如:建立连接-请求1/响应1-请求2/响应2-请求n/响应n-关闭连接
3.请求信息
包括:一个请求行、若干消息头、以及实体内容。
注:GET不能包含实体内容,只有POST/PUT/DELETE方式请求才可以包含实体内容
消息头:
信息头、请求头、响应头、实体头。
可按任何顺序排列
4.响应消息
包括:一个状态行、若干消息头、以及实体内容。
5.请求行和状态行
请求行格式:请求方式 资源路径 HTTP版本号<CRLF>
如:GET /test.html HTTP/1.0
或:GET /test.html HTTP/1.1
Host:
状态行格式:HTTP版本号 状态码 原因叙述<CRLF>
如:HTTP/1.1 200 OK
6.使用GET和POST方式传递参数
GET:数据量有限:1KB以下 参数在URL中
POST:参数在实体中,并在请求头设置内容长度和内容类型
7.响应状态码:
三位的十进制数
100-199:
表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。
200-299:
表示成功接收请求并已完成整个处理过程
300-399:
为完成请求,客户需进一步细化要求。例如:请求的资源已经移动到一个新地址。
400-499:
客户端得请求有错误。
500-599:
服务器错误。
案例:
200:正常
206:部分内容
302/307:请求的文档已经被临时移动到别处。
304:客户端缓存的版本是最新的。
401:未经授权(使用WWW-Authenticate头请求)
404:找不到请求的资源
500:服务器内部错误(代码错误)
8.通用信息头 //重点是(*)
Cache-Control:
* )
no-cache //告诉客户机和代理服务器不要缓存响应消息
Connection:(
* ) //处理完本次请求和响应后,客户端和服务器是否还要保持连接
close //立即关闭连接
Date: //表示HTTP消息产生时间 (GMT格式)
Pragma: (
*) //不要缓存(1.0),不可靠,建议使用其他方式
no-cache
Trailer://在实体后的头字段 (一般头字段放在实体前)
Date
Transfer-Encoding:(
*) //http实体部分指定某种编码方式
chunked //把整个http实体分段传输
Upgrade:允许客户端指定它所支持并希望当前协议切换到指定协议版本
HTTP/2.0. SHTTP/1.3 //设定这个协议版本通信
Via:指定HTTP消息所经过代理服务器名称和协议
HTTP/1.1 Proxy1.
Warning: //说明其他信息
any text
10.请求头
作用:用于客户端在请求消息中向服务器传递附加信息,主要包括客户端可以接受的数据类型、压缩方法、语言、以及发出请求的超链接所属网页的URL地址等信息。
Accept:(
*) //指出客户端支持的格式
text/html,image/*
Accept-Charset: (
*) //客户端可以使用的字符集
ISO-8859-1
Accept-Encoding:(
*) //客户机能够解码的编码方式
gzip,compress
Accept-Language: (
*) //指示返回哪个国家语言的网页文档
en-gb,zh-cn
Authorization:(
*) //设置用户认证
Basic enh4OjEyMzQ1Ng==
Expect: //指定客服机
100-continue
From: //
Host:(
*) //主机名
if-Match: //附带实体缓存内容
if-Modified-Since: (
*) //上次缓存的修改时间
if-None-Match://与if-Match的意思相反
if-Range: //指定时间以来,服务器缓存没有修改
if-Unmodified-Since: //与if-Modified-Since相反
Max-Forwards: //当前请求经过代理服务器数
Proxy-Authorization:代理服务器认证
Range: (
*)//断点,下载断点
bytes=100-599
Referer://单击某个超链接发送的请求(记录是哪里的广告链接)
TE: //说明客户机是否接受其他传输方式
User-Agent: (
*) //得到客户端浏览器类型
11.实体头 (响应头)
Allow://告诉浏览器以什么请求访问资源
GET/POST
Content-Encoding:(*) //服务器告诉浏览器接受压缩编码方式
gzip
Content-Language:(*)
当前服务返回的语言方式
Content-Length:(*) //表示实体大小
Content-Location: //指定响应消息封装实体内容的实际位置
Content-MD5: //检查实体是否发生改变
Content-Range: (*)//返回内容的实体的范围和长度
bytes 2543-4532/7898
Content-Type: (*)//实体类型
text/html;charset=GB2312
Expires:(*) //设置浏览器缓存过期时间 GMT格式
Last-Modified: //指定文档的最后更新时间
拓展头://http1.1 没有定义的头字段
Refresh://告诉浏览器过多少秒重新请求
1;url=www.baidu.com //一秒后请求(一般用于视频网站)
Content-Disposition: //指定接受程序接受数据的处理方式
attachment;filename=aaa.zip //建议浏览器保存实体到aaa.zip文件中