一、为什么要升级https

  1. 保护用户数据传输过程中的安全。
  2. 运营商网络劫持问题越来越严重,各种广告插入、强制跳App下载等手段严重影响用户体验,如果有违法内容或者用户被骗,还会牵连到考拉。
  3. Apple要求iOS平台App在2017.1.1开始强制启用https,否则不允许上架App Store;启用https的应用如果要在各平台都正常,需应用内部webview打开的站点也全部启用https。
  4. 随着web标准的更新,越来越多的新特性(比如Service Worker等)要求站点开启HTTPS才能使用;

二、目标

  • 调整考拉前端代码,使其可同时支持https,http访问;
  • 与日常开发同步进行,不影响日常开发;
  • 稳步启用https,http双协议支持,最大限度避免https上线导致的问题;

三、前端做了哪些调整

升级范围为考拉前台所有站点,包括wap、web等工程,历史代码量大;主要是将原写死http协议的地方改造成相对协议,使其可同时兼容http及https服务;

1. 页面内资源协议修改

页面资源包括几部分: 静态资源(js,css,ui图片,视频等等),动态内容修改

  • 静态资源

    • js: 调整js内部的http资源引用为相对协议,但是传递给外部应用的数据则根据 location.protocol 自动补全为当前页面使用的协议; 其次调整页面对js的引用,使js资源引用为相对协议;
    • css:调整mcss中图片等资源引用URL为相对协议;调整页面对css的引用为相对协议;
    • 打包调整: 调整打包工具配置,使其输出静态资源为相对协议;
    • 图片: 调整js、ftl中的图片缩略函数,区别是否为考拉和nos的图片,判断是否支持https做相应缩略处理,防止外部图片不支持https而显示不出来;全工程查找并替换硬编码图片标签src属性;
    • 外部库调整: 比如NEJ的一些模块或者工具,在URL改为相对协议是,认为其不是一个绝对地址,按相对协议解析会报错,会导致资源加载问题; 比如文件上传功能,在fallback到flash方案时,flash信息都是写死为http,也做了调整;
  • 动态内容
    后端给数据,前端显示类型的内容:

    • 图文详情:用正则匹配图文详情里面的img,video标签,并替换http协议为相对协;
    • 页面内部插值输出:调整js、ftl缩略图过滤器,为未使用过滤器的图片等资源增加过滤器,自动进行相对协议处理;
  • 页面跳转
    由于部分运营配置的页面,都是直接配置了http链接,用户点击页面的链接很容易跳回到http,不能长期在https下使用,于是我们在页面的a标签点击时自动根据当前页面协议,调整a标签的href属性的协议为当前协议,来支持正常跳转。

2. CSP规则调整

原CSP规则限制了页面内部加载的资源,协议必须一直,但是https上线初期缓和内容难以避免,所以在CSP中增加了规则,允许浏览器加载混合内容(仅限图片、视频);

3. 外部关联调整

  • 微信支付: 调整微信支付后台登记的安全域名信息,增加https url,使其同时支持双协议; 但是此调整不能在业务高峰期做,否则可能影响线上支付;

四、升级过程

这里仅仅列出主要的步骤,细节还比较多:

  1. 前端修改双协议支持后的代码上线,并让cdn支持https
  2. 公司内网双协议打开进行内部小范围试用
  3. 线上双协议打开,但是不开启https强制跳转
  4. 线上功能级别灰度启用https,让用户可以从一些页面开始使用https
  5. 全部放开

五、后续其它可以做的

  1. 上线h2, 已经在做了,很快开始内部测试
  2. 域名收敛
  3. 其它优化等

by 渔樵

考拉升级https经验相关推荐

  1. 拓荒会员电商“无人区”,考拉海购能否拿下“新船票”?

    文 | 陈小江 来源 | 螳螂财经(ID:TanglangFin) 考拉海购"变"了. 近日,考拉海购宣布战略升级--在现有跨境业务基础上All in会员电商.这是考拉融入阿里经济 ...

  2. 消费分级未改品质升级,网易考拉携手易观发布“品味生活”趋势

    当"消费分级"的话题炙手可热,大众间的区隔愈发因为消费趋势的不同而被凸显.近日,网易考拉携手权威第三方数据研究机构易观发布了<"品味生活"消费趋势报告&g ...

  3. 2020双11,Dubbo3.0 在考拉的超大规模实践

    很多开发者一直以来好奇:阿里自己有没有在用Dubbo,会不会用Dubbo?在刚刚结束的双11,我们了解到阿里云今年提出了"三位一体"的理念,即将"自研技术".& ...

  4. 亲历者说 | 完整记录一年多考拉海购的云原生之路

    作者 | 张洪箫(花名:伏见)阿里巴巴新零售高级技术专家 来源|阿里巴巴云原生公众号 前言 考拉海购的整个云化改造是从 2019 年 10 月份开始的,当时的唯一目标就是短时间内快速完成迁移.在不到 ...

  5. 从技术视角看考拉海购的云原生之路

    简介:今年双11,整个云原生升级帮助考拉减少了250台服务器,并沉淀出一套完整的 IaaS + PaaS 上云落地实践方案. 前言 考拉海购的整个云化改造是从 2019年10月份开始的,当时的唯一目标 ...

  6. Dubbo 3.0 前瞻系列 | 2020双11,Dubbo3.0 在考拉的超大规模实践

    很多开发者一直以来好奇:阿里自己有没有在用Dubbo,会不会用Dubbo?在刚刚结束的双11,我们了解到阿里云今年提出了"三位一体"的理念,即将"自研技术".& ...

  7. 网易考拉Android客户端路由总线设计

    1.前言 当前,Android路由框架已经有很多了,如雨后春笋般出现,大概是因为去年提出了Android组件化的概念.当一个产品的业务规模上升到一定程度,或者是跨团队开发时,团队/模块间的合作问题就会 ...

  8. 技术支持和研发哪个好_考拉海购技术支持的前世今生,聊聊家常“黑历史”

    本文来自考拉海购技术支持中心负责人–书渊的分享,想和大家聊一聊考拉技术支持的前世今生,在这个发展历程的介绍当中,大家也可以此对考拉窥一斑而知全豹.当然,既然是聊我们的家常 ("黑历史&quo ...

  9. 如何做组间差异检验_买套餐送车险,做维修提供代步车,考拉爱车如何实现差异化竞争?...

    前言 如何打造单店盈利模式,为客户提供最便捷的服务,是拥有90多家直营门店的考拉爱车首要目标. 作者丨老白出处 | AC汽车投稿请加微信:17301794939本文首发于AC汽车(ID:acqiche ...

  10. 网易考拉海购:电商高并发架构设计的铁律

    原文地址:https://blog.csdn.net/wangyiyungw/article/details/80350279 网易考拉海购已顺利度过了 2017 年的双十一.双十二等大促活动,销售额 ...

最新文章

  1. python中的有序字典
  2. C++ Primer Plus(十一)—— 使用类
  3. Spring Security——OAuth 2.0登录——Google,GitHub,Facebook和Okta
  4. com.alibaba.fastjson.JSONException: not close json text, token : :
  5. 产品经理如何进行需求管理?
  6. AEF横空出世——查询语法详解
  7. Java查看class的JVM,指令集文件--javap -c ClassName
  8. Protel 99SE安装向导
  9. 极限理论总结04:Delta方法
  10. HTML静态网页作业-HTML5+CSS大作业——年会抽奖网页设计(1页)
  11. pr怎么导出预设_怎样用Pr导出清晰度高的视频?
  12. 白开水最耐喝,最解内心的渴
  13. 什么是SaaS系统,SaaS系统有哪些优势
  14. 【面试题】前端人70%以上 不了解的promise/async await
  15. 记一次被QQ邮箱钓鱼邮件事件
  16. 探索使用JAVA将汉字解析成拼音
  17. cuda安装linux命令,ubuntu下安装cuda的两种方法
  18. 大头菜价格预测详解+模型
  19. Linux命令·chgrp·chown
  20. android dynamic features 项目笔记

热门文章

  1. ai伴侣2.4.7_人工智能:世界各地的活动(7月4日)
  2. 机器学习 深度学习 ai_用AI玩世界末日:深度Q学习的多目标优化
  3. php 打印所有常量,php中输出常量
  4. Image.fromarray的用法(实现array到image的转换)
  5. 例2.5 统计同成绩学生人数 - 九度教程第10题(Hash的应用)
  6. cacti不能实时刷新流量图_解决Cacti无法正常监视超过100M以上流量的问题
  7. OAuth 2 开发人员指南(Spring security oauth2)
  8. HBase: 看上去很美
  9. 《LabVIEW 虚拟仪器程序设计从入门到精通(第二版)》一导读
  10. 启明星系统使用在线视频教程