1.浏览器向服务器发送请求的过程

(1)域名解析

(2)发起TCP的三次握手

(3)建立TCP连接后发起http请求

(4)服务器响应http请求,浏览器得到HTML代码

(5)浏览器解析HTML代码,并请求HTML代码中的资源

(6)浏览器对页面进行渲染呈现给用户

(7)连接结束

2.常见状态码

HTTP状态码:当用户访问一个网页时,浏览器会向网页所在的服务器出请求,当浏览器接收并显示网页前,此网页所在服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求,HTTP状态码用于描述服务器对请求的处理结果。

HTTP状态码分类:

(1)1**:信息,服务器收到请求,需要请求者继续执行操作

100 (继续): 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101 (切换协议): 请求者已要求服务器切换协议,服务器已确认并准备切换。当前各种框架的热加载会用到
102 : 由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。

(2)2**:成功,操作被成功接收并处理
(3)3**:重定向,需要进一步的操作以完成请求
(4)4**:客户端错误,请求包含语法错误或者无法完成请求
(5)5**:服务器错误,服务器在处理请求的过程中发生了错误

常见的HTTP状态码:

200——OK,请求成功

301——Moved Permanently,资源(网页等)被永久转移到其他URL

302——Found,307——Temporary Redirect,临时重定向,请求的文档被临时移动到别处

304——Not Modified,未修改,表示客户端缓存的版本是最近的

401——Unauthorized,请求要求用户的身份认证

403——Forbidden,禁止,服务器理解客户端请求,但是拒绝处理此请求,通常是权限设置所致

404——Not Found,请求的资源(网页等)不存在

500——Internal Server Error——内部服务器错误

502——Bad Gateway,充当网关或代理的服务器从远端服务器接收到了一个无效的请求

504——Gateway Time-out,充当网关或代理的服务器,未及时从远端服务器获取请求

3.浏览器的缓存机制

4.CDN

全称 Content Delivery Network,即内容分发网络。

摘录一个形象的比喻,来理解CDN是什么。

10年前,还没有火车票代售点一说,12306.cn更是无从说起。那时候火车票还只能在火车站的售票大厅购买,而我所在的小县城并不通火车,火车票都要去市里的火车站购买,而从我家到县城再到市里,来回就是4个小时车程,简直就是浪费生命。后来就好了,小县城里出现了火车票代售点,甚至乡镇上也有了代售点,可以直接在代售点购买火车票,方便了不少,全市人民再也不用在一个点苦逼的排队买票了。

简单的理解CDN就是这些代售点(缓存服务器)的承包商,他为买票者提供了便利,帮助他们在最近的地方(最近的CDN节点)用最短的时间(最短的请求时间)买到票(拿到资源),这样去火车站售票大厅排队的人也就少了。也就减轻了售票大厅的压力(起到分流作用,减轻服务器负载压力)。

用户在浏览网站的时候,CDN会选择一个离用户最近的CDN边缘节点来响应用户的请求,这样海南移动用户的请求就不会千里迢迢跑到北京电信机房的服务器(假设源站部署在北京电信机房)上了。

CDN缓存

关于CDN缓存,在浏览器本地缓存失效后,浏览器会向CDN边缘节点发起请求。类似浏览器缓存,CDN边缘节点也存在着一套缓存机制。CDN边缘节点缓存策略因服务商不同而不同,但一般都会遵循http标准协议,通过http响应头中的

Cache-control: max-age //后面会提到

的字段来设置CDN边缘节点数据缓存时间。

当浏览器向CDN节点请求数据时,CDN节点会判断缓存数据是否过期,若缓存数据并没有过期,则直接将缓存数据返回给客户端;否则,CDN节点就会向服务器发出回源请求,从服务器拉取最新数据,更新本地缓存,并将最新数据返回给客户端。 CDN服务商一般会提供基于文件后缀、目录多个维度来指定CDN缓存时间,为用户提供更精细化的缓存管理。

前端工程师必须知道的网络知识(一)相关推荐

  1. nginx 带宽_前端工程师不可不知的Nginx知识

    历史背景 互联网的全球化导致了互联网的数据量快速增长,加上在本世纪初摩尔定律在单核 CPU 上的失效,CPU 朝着多核方向发展,而 Apache 显然并没有做好多核架构的准备,它的一个进程同一时间只能 ...

  2. 前端需要了解的5G网络知识

    概述 5G是第五代移动通信技术的简称,是通信领域的又一次较大的技术升级,作为前端的我们虽然或多或少了解一些通信知识,但大多都是基于<通信原理>等课程了解到的,随着技术的发展,前端网络侧的优 ...

  3. 网络技术——网络运维工程师必会的网络知识(1)(详细讲解)

    作者简介:一名在校云计算网络运维学生.每天分享网络运维的学习经验.和学习笔记.   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 前言 本章将会复习网络技术的一些知识,了解网络基础概 ...

  4. 网络技术——网络运维工程师必会的网络知识(3)(详细讲解)

    作者简介:一名在校云计算网络运维学生.每天分享网络运维的学习经验.和学习笔记.   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.网络层协议与应用

  5. web前端工程师需要掌握哪些知识

    随着互联网的发展速度迅猛,web前端工程师越来越火热,想学习Web前端开发吗?若想成为web前端工程师需要掌握哪些知识?今天小编总结了成为web前端工程师需要掌握的所有知识. 一.基础 1.H5标签 ...

  6. 一个前端工程师的基本修养

    有人说互联网是前端工程师的舞台,先不论这个说法是否有些夸大其词,但前端工程师绝对撑起了互联网应用开发的"半壁江山".随着传统网站.手机应用.桌面应用.微信小程序等次第出现,需要前端 ...

  7. 电商前端工程师:国内WEB前端开发经验之路

    一直想写这篇"十日谈",聊聊我对Web前端开发的体会,顺便解答下周围不少人的困惑和迷惘.我不打算聊太多技术,我想,通过技术的历练,得到的反思应当更重要. 我一直认为自己是" ...

  8. 前端工程师的成长之路

    一直想写这篇"十日谈",聊聊我对Web前端开发的体会,顺便解答下周围不少人的困惑和迷惘.我不打算聊太多技术,我想,通过技术的历练,得到的反思应当更重要. 我一直认为自己是" ...

  9. web前端工程师不同级别分别掌握哪些技能

    随着大前端时代的到来,移动互联网颠覆了PC互联网.接下来,前端将颠覆原生App世界.而近几年,前端技术能力的值钱程度很突出,名列前茅.这正代表了前端技术的当前行情.前端工程师一般分为初级工程师.中级工 ...

最新文章

  1. python 使用sax 解析xml 文件
  2. Codeforces Round #Pi (Div. 2) D. One-Dimensional Battle Ships set区间分解
  3. PHP的JSON封装
  4. 敏捷需要重构吗?不需要吗?
  5. 95-170-046-源码-Time-Flink时间系统系列之ProcessFunction使用分析
  6. jQuery 事件方法(交互)
  7. Mongodb学习总结(1)——常用NoSql数据库比较
  8. Bailian2915 字符串排序【排序】
  9. 在计算机操作系统中操作系统是处于应用软件,计算机操作系统考试复习题
  10. Unity优化百科(UWA 博客目录)
  11. MAX3485芯片资料整理
  12. 英语3500词(十一)entertainment主题(2022.1.23)
  13. 【spring-security基础】基于数据库的认证方式
  14. 解决 Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。(酷狗音乐占用8000端口)
  15. Single Threaded Execution模式
  16. 云计算机服务层次,云计算包括哪几个层次的服务?
  17. 2020年美容师(中级)证模拟考试题库及美容师(中级)理论考试试题
  18. 去哪找到高薪工作怎么找
  19. 罗永浩约战王自如中学习产品人需要具备的能力
  20. 中国科学技术大学课程资源 最新github地址

热门文章

  1. 剑指offer-跳楼梯和变态跳楼梯(C++)
  2. 重磅发布!RK3568开发板C应用编程手册
  3. 如何找到与证明素数之一:小素数和概率素数的快速检验
  4. 2022年,开源社最亮的星
  5. OFDM 中的 IFFT/FFT 注意事项
  6. 解释器,一个交互式外壳
  7. scip指令集_一、设备名称:轮式机器人
  8. 人生苦短,该是及时行乐?或是该苦尽甘来?
  9. html制作登陆注册页面
  10. PFC中各服务对象使用说明