1、什么是协议
计算机中的协议和现实生活中的协议是一样的,一式多份,彼此都遵从共同的一个规范,这个规范就可以称之为协议。
2、HTTP协议的工作流程
3、HTTP请求信息和响应信息的格式
请求:
响应:
常见状态码:
状态码 | 定义 | 说明 |
---|---|---|
1XX | 信息 | 接受到请求,继续处理 |
2XX | 成功 | 操作成功的收到,理解和接受 |
3XX | 重定向 | 为了完成请求,必须采取进一步措施 |
4XX | 客户端错误 | 请求的语法有错误,或不伴能完全被满足 |
5XX | 服务器端错误 | 服务器无法完成明显有效的请求 |
200: 服务器成功返回网页
301: 永久重定向
302: 临时重定向
403: 服务器告诉客户端页面未修改,直接取缓存
307: 保持重定向请求中原有的数据
404: 网页找不到
思考:浏览器能发送HTTP协议,那HTTP协议一定要浏览器发送吗?
答:NO 只要满足协议均可
4、缓存
第一次请求 : 200 ok
第二次请求 :304 not modified 未修改状态
解释:在网络上,有一些缓存服务器,甚至浏览器自身也有缓存功能,当我们第一次访问某图片时,正常下载图片,返回200,但第二次访问时(基于图片不会经常改动前提),服务器在返回200的同时,还返回图片的‘签名’—ETag(签名 可以理解为 图片的指纹),当浏览器再次访问图片时,去服务器交验指纹,如果指纹未变化,告诉浏览器直接使用缓存,减轻服务器的负担。
5、扩展
如果网站比较大,有N台缓存服务器,那么这N台缓存服务器如何处理主服务器上的文件
- 缓存服务器要不要缓存主服务器上的文件?
- 缓存多久?
思考:缓存服务器与主服务器之间应该有一些协议来说明这个2个问题?用什么协议来说明这两个问题?
答:HTTP协议,用头信息,cache-control来控制
具体用法:
在主服务器打开apache的expires扩展,利用该扩展来控制图片,css,html等文件,控制其是否缓存和缓存周期。