您现在的位置是:热点 >>正文

网站的工作原理

热点31764人已围观

简介你在浏览器里敲下“zhihu.com”,回车。不到一秒,页面铺满屏幕。这中间发生了什么?简单说:你的电脑向一台远方的服务器要了一份文件,服务器把文件拆成无数小包扔过来,你的浏览器再把它们拼回去,渲染成 ...

你在浏览器里敲下“zhihu.com”,网站回车。作原不到一秒,网站页面铺满屏幕。作原这中间发生了什么?网站简单说:你的电脑向一台远方的服务器要了一份文件,服务器把文件拆成无数小包扔过来,作原你的网站浏览器再把它们拼回去,渲染成你看到的作原样子。

先搞清楚“地址”这件事。网站你输入的作原域名,比如“zhihu.com”,网站服务器根本不认识。作原它只认IP地址,网站一串像“103.120.80.15”这样的作原数字。所以浏览器得先找DNS服务器问路:知乎的网站IP是多少?DNS就像互联网的电话簿,一层层查下去,从根域名服务器到顶级域,再到知乎自己的权威DNS,最后把IP塞回给你的浏览器。这个过程通常几十毫秒,你根本感觉不到。

拿到IP,浏览器开始和服务器握手。TCP协议负责建立连接——三次握手,你发个SYN,服务器回SYN+ACK,你再回ACK。听起来啰嗦,但这是为了保证双方都准备好传数据了。如果是HTTPS,还要多一层TLS握手,交换密钥、验证证书。你看到地址栏那个小锁图标,就是TLS在干活。没有它,你输入的密码在公共Wi-Fi上就是明文裸奔。

连接建好,浏览器发HTTP请求。GET / HTTP/1.1,Host: zhihu.com,后面跟着一堆头信息:我接受什么格式、我是什么浏览器、我带没带cookie。服务器收到请求,开始处理。如果是静态页面,直接读硬盘上的HTML文件扔回来。如果是动态的,比如你的知乎首页,服务器得查数据库——你关注了谁、最近有什么新回答、广告系统该塞哪条推广。这些逻辑跑完,拼出一段HTML,再通过HTTP响应发回去。

数据不是一口气传完的。TCP把HTML切成一个个数据包,每个包标上序号,从服务器路由到你的电脑。路径可能经过十几个路由器,跨海底光缆,绕半个地球。包可能走丢,可能乱序到达。TCP负责重传丢失的、按序号重组。你的网速快慢,很大程度上取决于这些包在路上堵不堵。

浏览器收到HTML,开始解析。遇到<link>标签,去下载CSS;遇到<script>,去下载JavaScript。这些请求又是新一轮HTTP往返。CSS决定长什么样,JS决定能干什么。解析过程中浏览器构建DOM树,和CSSOM树合并成渲染树,然后布局、绘制。你看到页面从白屏到慢慢出现文字图片,就是渲染引擎在干活。

JavaScript还能在页面加载后继续发请求。你往下滚动,知乎自动加载下一页回答——那是JS用Fetch API向服务器要了更多数据,拿到JSON后动态插入DOM。页面根本没刷新,但内容变了。这种“局部更新”就是AJAX,现代网站几乎都靠它。

服务器那边也不轻松。一台物理机可能跑着几十个虚拟机,每个虚拟机里又有多个容器。Nginx在前面接请求,根据域名和路径转发给后面的应用服务器。应用服务器用Python、Java、Go或者Node.js写,连上数据库集群。数据库可能又分主从,读走从库,写走主库。缓存层Redis挡在前面,热门数据直接从内存返回,根本不碰硬盘。你每刷新一次首页,背后可能是几十台机器在协同。

最后说个细节。你点了个赞,浏览器发个POST请求到某个API。服务器更新数据库,返回200 OK。但你可能不知道,这个赞还会被扔进消息队列,异步通知关注你的人、更新你的推荐模型、记入反作弊系统。你看到的“点赞成功”只是冰山一角,水面下是一整条数据流水线。

网站的工作原理,说到底就是一套精密的请求-响应机器。从DNS到TCP,从HTTP到渲染,每一层都在解决特定问题。下次页面卡住转圈,你就知道——可能是某个数据包在海底光缆上迷路了。

Tags:

相关文章

  • 3d出屏短片免费下载

    热点

    3D出屏短片免费下载,这事儿听着像天上掉馅饼,但真找起来,坑比馅饼多。 我在B站刷到过一条视频,一只机械蝴蝶从屏幕里飞出来,翅膀上的纹理清晰得能数出绒毛。弹幕瞬间炸了,满屏都是“卧槽”“伸手党求资源” ...

    【热点】

    阅读更多
  • 研发云制品仓库安全漏洞扫描有几种模式

    热点

    研发云制品仓库里的安全漏洞扫描,说白了就三种模式:定时全量扫描、触发式增量扫描、以及上线前强制门禁扫描。这三种模式不是并列关系,而是层层递进,把漏洞拦截在离代码最近的地方。 定时全量扫描是最笨也最可 ...

    【热点】

    阅读更多
  • 疫情防控系统性风险漏洞排查检查报告

    热点

    疫情防控系统性风险漏洞排查检查报告 某市第三人民医院的发热门诊,凌晨两点还亮着灯。护士长翻着登记本,发现三天前一位从高风险区返乡的货车司机,核酸报告出了阳性,但系统里他的行程码还挂着绿码。这不是个例 ...

    【热点】

    阅读更多


友情链接