http协议:超文本传输协议,描述请求或响应数据的格式要求(基于TCP/IP的应用层协议)
版本:http 1.0 , http 1.1
http 1.0的运行方式:
1.客户端与服务器建立连接;
2.客户端向服务器发送请求;
3.服务器对客户端的请求进行响应;
4.连接关闭。
缺点:1、浏览器与服务器的连接短暂,每次连接只处理一次请求;
2、无状态,即服务端不保留客户端的状态。
http 1.1的运行方式:
1.客户端与服务器建立连接;
2.客户端与服务器进行多次请求与响应交互;
3.关闭连接。
优点:1、在一个TCP连接上可以发送多次请求,提高效率;
2、多个请求和响应过程可重叠;
3、增加更多的请求头和响应头
http协议的组成:
1、请求部分:
请求行:【请求方式】 【资源路径】 【协议及版本号】 {第一行} GET/POST
请求头:
Accept:MIME,浏览器可解析的数据类型
Accept-Language:浏览器支持的语言
User-Agent:客户端类型
Accept-Encoding:客户端支持的编码类型
Accept-Charset:浏览器支持的字符集
Host:初始url中的主机和端口号
Referer:包含一个url,用户从该url代表的页面出发访问当前请求的页面
Content-Type:告知服务器,请求正文的MIME类型
If-Modifed-Since:浏览器中缓存文件的最后修改时间
Connection:表示是否持续连接(Keep-Alive)
Cookie:回话有关
请求正文:(post,没有长度限制)
2、响应部分:
响应行:【协议及版本号】 【状态码】 【状态码描述】
响应头:
Location:通知浏览器新的资源的位置(结合302、307)
Server:服务器名称
Content-Encoding:服务器发送的数据采用的编码类型gzip
Content-Lenght:告知浏览器响应正文的长度
Content-Type:告知浏览器服务器发送的内容的MIME类型
Refresh:告知浏览器页面刷新频率(秒)
Content-Disposition:告知客户端以下载的形式查看(attachment;filename=aaa.gzip)
Set-Cookie:会话有关
//告知浏览器不要缓存
Expires:-1(有效时间,毫秒值)
Cache-Control:no-cache(http 1.1)
Pragma:no-cache(http 1.0)
响应正文:
响应状态码描述:
100 ~ 199 :表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。
200 ~ 299:表示成功接收请求,并完成整个处理过程。
300 ~ 399:为完成请求,客户端需要进一步细化请求。
400 ~ 499:客户端的请求有错误。
500 ~ 599:服务器端出现错误。
常用的响应状态码:
200 :表示正常,返回的是正常的响应结果。
302、307:表示临时重定向,指出被请求的资源已经被临时移走,新的url在响应头的Location中给出。
304:未修改,表示客户端的缓存是最新的,可以继续使用缓存,无需向服务器发送请求。
404:未找到,客户端访问的资源在服务器端不存在。
500:服务器内部错误,服务器的程序发生错误。
【 消息头的作用:在客户端和服务器之间传递附加信息。
1.每个消息头包含一个头字段名称,然后以此的冒号,空格,值,回车和换行符。
2.消息头字段名称是不区分大小写的,习惯上每一个单词的第一个字母大写。
3.整个消息头部分的各行可以按任意顺序排列。
4.消息头又分为通用消息头,请求头,响应头和实体头四类。 】