美文网首页
2018.10.27 LOG:cors cache https

2018.10.27 LOG:cors cache https

作者: 灰喵九命 | 来源:发表于2018-10-28 16:27 被阅读0次

    这几天先是偏头痛,接着又腰杆痛,上了年龄的程序员真的是伤不起,直到今天才有时间静下来写点东西。
    到家附近的骨科医院看病,说是臀上皮神经炎,原因可能是久坐引起的,医生给做了小针刀,那可真是一个舒爽,拿着针在‘臀’上到处,完事后,貌似好了?其实就是从非常难受变成了难受。

    这几天虽然身体不给力,精神其实还是很好滴,看了一些HTTPHTTPS相关的东西,详情如下。

    跨域

    现在知道好的跨域方式:代理、JSONP、CORS。

    JSONP是老生常谈的东西了,不知道的同学可以谷歌一下,今天主要看看CORS。
    CORS是XHR2中才有的东西,但是很好用,解决了包括远程字体在内的很多问题。
    在响应头中加入:

    1. Access-Control-Allow-Origin:定义request来源,*号表示不限制
    2. Access-Control-Allow-Headers:允许请求的头部信息
    3. Access-Control-Allow-Methods:定义允许的方法
    4. Access-Control-Max-Age:生效时间

    主要用到的就是以上的头信息,是不是比JSONP方便很多?

    缓存

    缓存分为客户端缓存和服务器缓存(CDN、redis),这里主要说一下客户端缓存(不包括localstorage)。

    Cache-Control

    • no-cache:不经过缓存,强制每次直接请求服务器
    • no-store:强制任何情况下都不保留缓存副本
    • max-age:缓存生效时间
    • public:任何途径都可以缓存该资源
    • private:主要用来限制用户和代理服务器

    校验值

    • Last-Modified:资源最后修改时间
    • If-Modified-Since:上次服务器发过来的最后修改时间
    • Etag:资源在服务器的标识符
    • If-None-Match:上次发过来的Etag

    配置Last-Modified/ETag的情况下,浏览器再次访问资源,还是会发送请求到服务器询问文件是否已经修改,如果没有,服务器会只发送一个304回给浏览器,告诉浏览器直接从自己本地的缓存取数据;如果修改过那就整个数据重新发给浏览器。

    Cache-Control则不同,如果检测到本地的缓存还是有效的时间范围内,浏览器直接使用本地副本,不会发送任何请求。两者一起使用时,Cache-Control的优先级要高于Last-Modified/ETag。即当本地副本根据Cache-Control发现还在有效期内时,则不会再次发送请求去服务器询问修改时间了。

    一般情况下,使用Cache-Control会配合Last-Modified/ETag一起使用,因为即使服务器设置缓存时间, 当用户点击“刷新”按钮时,浏览器会忽略缓存继续向服务器发送请求,这时Last-Modified/ETag将能够很好利用304,从而减少响应开销。

    HTTPS CA 非对称加密 对称加密

    看我能不能解释清楚
    为什么后面传输过程要用对称加密?因为速度快呗。
    不懂非对称加密的,可以google一下,很多生动的解释。

    1. HTTP 1 的报文信息是明文传输,很容易被劫取和模仿,就算对传输数据加密也挡不住某些人
    2. 应用和服务器连接的时候交换密钥,以后互相传送的消息都以定义好的密钥解密,这就是对称加密
    3. 第一次传送密钥过程很容易泄密,而且如果某一个用户被破解,其他都不安全了
    4. 将第一次发送密钥的过程改成非对称加密传送
    5. 浏览器发送连接请求,服务器将公钥送给浏览器,浏览器用服务器的公钥加密‘对称密钥’,发送给服务器
    6. 因为信息是服务器的公钥加密的,所以只有服务器的私钥才能解密
    7. 服务器解密后,两端以后就用这个对称密钥来加解密信息。
    8. 这个还有个漏洞,就是服务器第一次传送公钥给浏览器的时候,很容易被劫持
    9. 所以需要一个权威机构给服务器颁发的证书来签名这个公钥,再发送给客户端
    10. 客户端接收到证书和公钥后,用此权威机构的算法解密和生成就能得到公钥
    11. 这就是HTTPS
    12. HTTPS常规来说,分为dv-个人,ov-组织,ev-最强,3个等级,等级越高身份安全越好,dv一般是免费的
    13. 免费推荐:let's encrypt,又拍云,godaddy;收费的推荐:symantec, geotrust,globalsign

    相关文章

      网友评论

          本文标题:2018.10.27 LOG:cors cache https

          本文链接:https://www.haomeiwen.com/subject/ofxmtqtx.html