Http(HyperText Transfer Protocol) 超文本传输协议
Https(Hyper Text Transfer Protocol over Secure Socket Layer) http的安全版
一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
二、http是[超文本传输协议] 信息是明文传输,https 则是具有安全性 的SSL加密传输协议。
三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的[网络协议],比http协议安全
http返回码
1xx 服务端收到了客户端的请求,什么也不做
2xx 服务器正常响应
3xx 客户端需要进一步的操作才能完成请求;
4xx 客户端请求错误
5xx 服务端返回错误
常见状态码 : 200 请求成功 302重定向 304 访问缓存 404 资源不存在 503服务器无法处理当前请求
请求协议
常用请求协议是get post put delete header
其中get是获取数据,post用来提交表单
get可以缓存,post不能缓存
get没有post请求安全
get把请求参数放到url,post把请求参数放到body内
get和post最终都是通过TCP/IP协议进行网络请求的
三次握手,四次断开
syn 建立链接 ack响应 fin关闭连接
htts_conn.png
缓存策略
http1.0 expires缓存标识,过期时间是服务器时间,由于跟服务端不一致,会有偏差
http 1.1 cache-control会有强制缓存和相对缓存,其中强制缓存字段有:private public no-cache no-store max-age s-maxage
Cache-Control响应头中常用字段的具体含义:
(1)、max-age:用来设置资源(representations)可以被缓存多长时间,单位为秒;
(2)、s-maxage:和max-age是一样的,不过它只针对代理服务器缓存而言;
(3)、public:指示响应可被任何缓存区缓存;
(4)、private:只能针对个人用户,而不能被代理服务器缓存;
(5)、no-cache:强制客户端直接向服务器发送请求,也就是说每次请求都必须向服务器发送。服务器接收到请求,然后判断资源是否变更,是则返回新内容,否则返回304,未变更。这个很容易让人产生误解,使人误以为是响应不被缓存。实际上Cache-Control: no-cache是会被缓存的,只不过每次在向客户端(浏览器)提供响应数据时,缓存都要向服务器评估缓存响应的有效性。
(6)、no-store:禁止一切缓存(这个才是响应不被缓存的意思)。
相对缓存有两种都是成对出现 Etag if_None_match和 last_modified if_modifed_since
cache.png
对称加密和非对称加密
http是对称加密, https是在http基础上通过SSL/TSL进行加密
https是通过非对称加密获取私钥,然后通过私钥进行对称加密
公钥和私钥 关于非对称加密和对称加密的思路;
客户端请求https链接,含有非对称加密协议,服务端返回使用的非对称加密算法及公钥;
客户端使用公钥对对称加密密钥进行加密,然后把加密过的密钥传递给服务器
服务器使用密钥解密后获取对称加密的密钥
后续使用对称加密的密钥进行通讯;
断点续传
关键字 请求头 RANGE types=20000 RandomAccessFile
down.png
网友评论