一、HTTP协议简介
1、基本概念
- 协议:指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则
- HTTP协议(基于TCP/IP协议):超文本传输协议是一种通信协议,它允许将超文本标记语言文档从Web服务器传送到客户端的浏览器
2、URI和URL的区别
URI:统一资源标识符,用来唯一的标识一个资源,强调资源
file://b:12/c/a.txt
(1) file: 访问资源的命名机制
(2) b:12:访问资源的主机名
(3) c/a.txt: 资源的名称,由路径标识URL:统一资源定位器,它是一种具体的URI ,强调路径
http://www.baidu.com
(1)协议 http https
(2)存有该资源的主机IP地址(DNS转换) www.baidu.com
(3)主机资源的具体地址,比如说文件等
二、HTTP协议的特点
- 简单快速 主要用在C/S架构,
- 无连接 每次连接只处理一个请求
- 无状态 对以前处理的事务没有记忆
三、request/response:原理
request:
- Host: 主机加端口号,6vhao.kkcaicai.com:8080
- User-Agent: 客户端使用的操作系统,版本号
- Accept: / 媒体类型(这里表示所有类型)
- Referer: http:www.aaa.com/ (从哪个页面链接过来的)**
- Accept-Encoding: gzip、default、sdch
- Accept-language: zh-CN,zh;q=0.8
- If-None-Match: “580c7b8e-441” (跟response中的ETag联合使用,后面具体介绍)
- If-Modified-Since: Sun, 23 Oct 2017 09:00 GMT (最后修改时间)
Referer 和 If-None-Match 经常会在面试中被问到,后面会具体介绍
response:
- HTTP/1.1 304 Not Modified 协议与状态码 (304表示直接从缓存中读取内容,与 If-None-Match还有ETag有关)
- Server: Tengine
- Date: Sun, 23 Oct 2017 09:00 GMT
- Last-Modified: Sun, 23 Oct 2017 09:00 GMT 资源最后修改时间,跟request中的 If-Modified-Since对应
- ETag: “580c7b8e-441”
- Expires: Sun, 23 Oct 2017 09:00 GMT 缓存的期限
- cache-control: max-age=43200
- proxy-Connection:keep-alive 代理连接,客户端和服务端连接不会关闭