Golang和HTTPS在网站前端接入里的高效应用

Golang和HTTPS在网站前端接入里的高效应用
2021年05月22日18:38:33 0 332

Golang和HTTPS在网站前端接入里的高效应用

网站前端架构技术优化的脚步从未停止过,而要做到全栈优化的目的,运维、后端架构研发、前端模板渲染研发、系统和网络等各个部门的协作当然少不了。与此同时,安全永远是网站建设中绕不开的梗,从2015年年初开始,HTTPS安全协议就已被各大网站采用,其中百度是国内第一家推行全站HTTPS的大型网站。第61期百度技术沙龙将围绕百度前端技术的进化历程以及采用的技术展开。(点击最下方阅读原文可免费参加)。

在这里,我们有幸采访到了三位讲师,分别是百度资深运维工程师陶春华、许霞和陈曦洋。

InfoQ:BFE架构是如何做到在高并发访问的情况下不丢失访问请求的?

陶春华:BFE架构能做到这一点主要依托了Golang对并发访问的支持:goroutine机制在并发处理上非常高效;编程模型也是大家熟悉的线程模型,容易掌握。

InfoQ:后台统一日志收集使用的是什么技术?以及如何在不影响业务流程的情况下保证日志的准确性和实时性?

陶春华:对访问日志我们采用两个手段处理:一是开发了一个专用的Reader程序,解析出部分关键请求信息,通过实时接口发送到后台汇聚服务,用于实时的流量识别与调度。二是公司有日志收集系统,统一进行日志的收集、统计与存档。

InfoQ:BFE前端接入是如何做到防攻击的?在不影响主业务流程情况下具体安全策略是如何运行的?

陶春华:安全主要是通过WAF服务来保障。WAF Server是和BFE同机部署的应用层防火墙,BFE会把流量转发到WAF服务程序。根据安全规则,WAF服务对访问数据进行检查,一旦发现违反安全规则的访问,则立即封禁该访问。这个过程独立于BFE的其他处理逻辑。

InfoQ:GO语言在前端接入设计上存在哪些先天不足?主要的解决措施是什么?

陶春华:对BFE的应用场景来说,主要是GC带来的不确定的延迟。为此我们设计了多进程轮转的解决方案,基本思路是当前服务的工作进程关掉GC,服务一段时间后,其他进程替换工作。

InfoQ:如何跟后端架构研发、前端模板和渲染研发、系统和网络等各个部门之间进行协作,才能实现整个网站全栈优化的效果?

许霞:网站速度的提升在公司内部是一个主题方向,并且有一个独立的项目组进行工作开展。项目组中包括网络、服务器、搜索架构等基础技术的工程师,也包括前端渲染、交互设计方向的工程师。整个项目组会整体对网站的优化进行负责,从而实现从各个层面进行速度的优化。而运维部作为一个衔接基础技术和业务的技术部门,就承担了整体分析设计与驱动全栈优化的角色。

InfoQ:百度在WPO(Web Performance Optimization)上做了哪些措施?对各种监测手段的使用如何抉择?

许霞:网站性能的监测手段选择主要是两方面的。首先是基于JS的监测数据,这部分数据优点是数据规模大,数据可以根据目的性进行自定义。当然缺点是很难覆盖竞品的情况下对竞品情况的了解,我们会选择第三方监测,包括基调、博瑞,以及海外的同行。通过购买第三方监测服务来覆盖我们在竞品测监测数据,同时也保证了客观性。

InfoQ:可否介绍一下目前HTTPS在业界的适用范围?使用前后的效果对比是怎样的?

陈曦洋:需要保护隐私,防止劫持和嗅探,和钱/账户打交道的都应该优先上。在这些领域,对用户流量的劫持已经让用户难以忍受,甚至一些临时工写出来的劫持代码会直接让页面功能不可用,可以从用户反馈渠道看到大量的抱怨。另外一方面,一些非法的行为会直接嗅探用户浏览网页的的隐私,获得用户需求信息,甚至直接电话骚扰用户。不安全的浏览会给坏人可趁之机,入侵用户账户,造成财产或者名誉等损失。

百度在上线HTTPS之后,用户反馈的页面由于劫持而造成的功能问题减少了一个数量级。之前大家没有上线HTTPS,很多是在顾忌复杂性,资源成本,和访问延迟。这些问题都会逐渐得到解决,建议大家尽量都改造为HTTPS。另外看看今年上线HTTPS有哪些网站就知道效果如何了。

InfoQ:HTTPS目前在百度的使用场景有哪些?能不能做到完完全全的安全?

陈曦洋:HTTPS目前在百度主要在搜索支付金融账户等业务,也正在推进支持所有的产品。使用HTTPS代表不了完完全全的安全,但是能解决很多问题,也极大的增加了攻击者的成本。但没有完全的安全这个说法。一个实际使用中的完整系统总是非常的复杂,用户浏览网页的过程也是一样,在很多环节上,都有各种各样的风险。

余额充值 点赞(0)
weinxin
账号+金额发此微信
充值后请把会员账号/用户名+充值金额发送到此微信:tourism52
历史上的今天
07月
24
如何成为前端开发者,如何成为一个前端的开发者_网站建设 前端后端

如何成为一个前端的开发者_网站建设

在过去的五年中,Web开发已经变得非常流行。随着网络技术的进步和网络上业务的扩展,在这个相对较新的职业中看到高需求是正常的。 如果您不确定是否希望,将自己的职业生涯推向PHP开发之...
昆明前端开发,昆明前端开发的历史和趋势 前端后端

昆明前端开发的历史和趋势

昆明前端开发 的历史和趋势 什么是前端 前端:针对浏览器的开发,代码在浏览器运行 后端:针对服务器的开发,代码在服务器运行 前后端不分的时代 互联网发展的早期,前后端开发是一体的,...
昆明前端开发,昆明前端开发是否能向CTO岗位发展 前端后端

昆明前端开发是否能向CTO岗位发展

昆明前端程序员是否能向CTO岗位发展 都说程序员吃的是青春饭,若是不想被无情的淘汰,就只能往上爬,做到了管理岗基本也就稳定了,所以很多程序员的目标就是CTO。前些天一个做前端的朋友...
前端布局基础概述 前端后端

前端布局基础概述

前端圈有个梗:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在公司一直有参与前端的基础面试,深感这个梗不是个玩笑。 然而,我觉得实际比例可能会更...
Web前端框架,Web前端框架:是解药还是毒药? 前端后端

Web前端框架:是解药还是毒药?

Web前端框架:是解药还是毒药? 要使用现代的前端框架,你需要下载开发环境和依赖,编译代码,然后在浏览器上运行。这个是好是坏?究竟是什么导致了这种不必要的复杂性?是因为我们构建的网...
一文看懂前端和后端开发,前后端开发 前端后端

一文看懂前端和后端开发

作为一名开发者,你可能会想:2019 年最好的软件开发技术和编程语言会是什么?它们又是如何被应用在软件开发当中的?如果你在思考这个问题,那就来对地方了。这篇文章将对前端和后端开发技...
昆明前端开发,昆明前端开发真的会被取代吗? 前端后端

昆明前端开发真的会被取代吗?

昆明前端开发 真的会被取代吗? 事情是这样子的,前不久有团队做了款手机版app这段时间发布了,可以直接生成网页。 于是很多人就慌了手脚 手机APP可以直接生成网页,取代了前端工程师...
前端开发之跨域 前端后端

前端开发之跨域

跨域是在前端甚至后端面试上的一个经常问的题目,如何处理跨域想必各位同学已经了解的比较透彻了,那本篇文章再给大家做一下复习或者说更深入的讲解一下各种跨域的处理办法,以及跨域问题的诱发...

Comment list 共有 0 条评论

暂无评论