Http协议
什么是协议
计算机的协议和现实中的协议是一样的,一式双份/多份。双方/多方都遵从共同的一个规范,这个规范可以成为协议
HTTP协议的工作流程
当用户在地址栏里输入网址后,客服端会向服务器发送一个请求,服务器会返回响应的数据(图片和前端页面等)
HTTP请求信息和响应信息的格式
请求:
1)请求行
2)请求头信息
3)请求主题信息(可以没有)
请求行又分三部分 请求方法 请求路径 所用的协议(http1.1 http1.0)
请求方法: GET POST PUT DELETE TRACE OPTIONS
请求路径: url的一部分
请求协议: 大部门都是http1.1协议
http1.0 客户端与服务器连接后,只能获得一次web资源
http1.1 客户端与服务器连接后,可以获得多个web资源
状态码和状态文字
1xx 信息 接受到请求,继续处理
2xx 成功 操作成功
3xx 重定向 为了完成请求,必须采取进一步措施
4xx 客户端错误 请求的语法有错误或不能完全被满足
5xx 服务端错误 服务器无法完成明显有效的请求(代码错误)
常用状态码
200 - 服务器成功返回页面
301/2- 永久/临时重定向
304(not modified) - 未修改 (取的缓存)
307 - 重定向后保持原有的数据
失败的状态码:
404 - 未找到
503- 服务器暂时不可用
500 - 服务器内部错误
502 - 网关错误
HTTP referer头 与 防盗链
在Http协议中,头部信息里,有一个重要的选项:referer
referer 代表网页的来源,即上一页的地址
如果是直接在浏览器上输入地址,回来进来,则没有referer头
如何配置apache服务器,用于图片的防盗链
原理: 在web服务器层面,根据http协议的referer头信息,来判断,如果来自站外,则统一重写到一个很小的防盗链提醒图片上去。
HTTP协议缓存控制
当我们访问的网站中包含图片时,第一次请求时返回的状态码是200,但是第二次请求时的返回值可能就是304 not modified 未修改状态。
解释: 在网络上,有一些缓存服务器,而且浏览器自身也有缓存功能。当我们第一次访问某图片时,返回200 基于一个前提,图片不会经常改动。服务器返回200的同时,还会返回该图片的签名--Etag(签名可以理解为图片的指纹)
当浏览器再次访问该图片时,去服务器校验指纹
如果图片没有变化,直接使用缓存中的图片,这样减轻了服务器的负担
第二次访问
Requset Headers