目录
一.什么是HTTP协议
1.概念
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
2.格式
1)请求的格式
请求:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。
请求行的内容包括请求方法 目录 协议类型
请求方法又分为 GET POST HEAD PUT DELETE TRACE OPTION
GET和HEAD基本一致,只是不返回数据
注意:这些方法虽然是HTTP协议中的,但是WEB服务器未必让你用
请求协议有0.9 1.0和1.1
2)响应的格式
响应:状态行、消息报头、空行和响应正文。
响应行包括协议 状态码 状态文字
状态码 :反应服务器的状态的
1xx 接收到请求,继续处理
2xx 表示成功
3xx 表示重定向
4xx 客户端错误,请求的语法有错误或不能完全满足
5xx 服务器内部错误
常见的状态码
200 表示ok
301/2 永久或临时重定向
304表示服务端未修改,减轻服务端压力
404请求的网页不存在
503 服务器暂不可用
注意点:重定向时的POST数据会出现数据丢失,可以用307重定向
3.HTTP协议的防盗链
当我们在页面中引用站外图片时,别人会通过请求头中的Refere:表示网页来源即上一页地址来做防盗链。
防盗链的方法:1.在web层面上获取header信息,重定向到一个默认图片上;
2,打开appache重写mod_rewrite,在需要防盗链的目录或网站,写htaccess文件,并制定防盗链规则。
4.HTTP的长短链接
Http的长连接实际说的是tcp的长连接,在1.0中都是短连接,在1.1使用的长连接,在响应头是有个Connection:keep-alive上设置,一般在服务器文件中配置,同时需要客户端支持。
二.HTTP的缓存
1.图片的缓存
我们在第一次请求时会下载 返回200 ok ,第二次会返回304 Not Modify未修改状态
如果理解:在图片不经常改动时,第一次请求下载返回200的同时,响应头中会返回一个ETAG,和LastModifed 当浏览器再次去请求时,会在请求头中携带IF-Modifyed-Since 和if-None-match(上次的ETG)这个时候,回去匹配这两个值,如果不匹配才会去重新下载,不然就返回304,表示浏览器从本地取,节省传输时间。
2.缓存服务器和主服务器的缓存
1.要不要缓存?
2.缓存时间?
使用cache-control来控制,在主服务的expire扩展,来控制图片,css,html.js,来决定是否缓存和缓存周期
从而减轻了主服务器的负担。
三.HTTP协议与内容压缩
服务器上将页面数据压缩,浏览器解压缩之后渲染,从而加快传输效率,一般是压缩文本格式的文件,不对视频,图片进行压缩。压缩的前提,是浏览器支持解压缩,在请求头上一般会带有支持的Accept-Encoding与服务器协商压缩的类型。
四.聊一聊POST请求的几种传参方式
五.HTTPS协议
HTTPS请求是一种安全的协议,由于HTTP使用明文传输,从而才有了HTTPS,HTTPS的核心原理,就是使用非对称加密来传输秘钥,使用对称加密传输数据,从而使得文件传输变的更安全。