前端网络相关

传输控制协议-TCP (Transmisson Control Protocol)

提供面向连接的,可靠的数据传输服务。

1. TCP 是面向连接的(需要先建立连接);
2. 每一条 TCP 连接只能有两个端点,每一条 TCP 连接只能是一对一;
3. TCP提供可靠交付的服务。通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达;
4. TCP 提供全双工通信。TCP 允许通信双方的应用进程在任何时候都能发送数据。
5. TCP 连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据;面向字节流。
6. TCP 中的“流”(Stream)指的是流入进程或从进程流出的字节序列。

用户数据协议-UDP (User Datagram Protocol)

1. UDP 是无连接的;
2. UDP 是尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态;
3. UDP 是面向报文的;
4. UDP 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如直播,实时视频会议等);
5. UDP 支持一对一、一对多、多对一和多对多的交互通信;
6. UDP 的首部开销小,只有 8 个字节,比 TCP 的 20 个字节的首部要短。

超文本传输协议- HTTP ( HyperText Transfer Protocol )

HTTP: 
  1. 运行在 TCP 之上,明文传输,客户端与服务器端都无法验证对方的身份
  2. 无加密机制
  3. 端口: 80
  4. 不需要证书
  5. 资源占用少

HTTPS:
  1. 身披 SSL( Secure Socket Layer )外壳的 HTTP,运行于 SSL 上,SSL 运行于 TCP 之上, 是添加了加密和认证机制的 HTTP。
  2. 共享密钥加密和公开密钥加密并用的混合加密机制
  3. 端口: 443
  4. 需要证书
  5. 资源占用多

对称加密与非对称加密
  对称密钥加密是指加密和解密使用同一个密钥的方式,这种方式存在的最大问题就是密钥发送问题,即如何安全地将密钥发给对方;
  而非对称加密是指使用一对非对称密钥,即公钥和私钥,公钥可以随意发布,但私钥只有自己知道。
  发送密文的一方使用对方的公钥进行加密处理,对方接收到加密信息后,使用自己的私钥进行解密。
  由于非对称加密的方式不需要发送用来解密的私钥,所以可以保证安全性;但是和对称加密比起来,非常的慢.

  综上:我们还是用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。

TCP 三次握手和四次挥手

 第一次握手:
  建立连接时,向服务器发出连接请求报文,这是报文首部中的同部位 SYN = 1,
  同时选择一个初始序列号 seq = x ,客户端进程进入了 SYN-SENT (同步已发送状态)状态,等待服务器确认;
第二次握手:
  服务器收到 syn 包后,如果同意连接,则发出确认报文; 确认报文 ACK = 1,SYN = 1,确认号是 ack = x + 1,
  同时也要为自己初始化一个序列号 seq = y,此时服务器进程进入了 SYN-RCVD(同步收到)状态;
第三次握手:
  客户端收到服务器的 SYN+ACK 包,要向服务器给出确认。
  确认报文的 ACK = 1,ack = y + 1,自己的序列号 seq = x + 1,此时,TCP 连接建立,客户端进入 ESTABLISHED (已建立连接)状态。

第一次挥手:
  客户端进程发出连接释放报文,并且停止发送数据。
  释放数据报文首部 FIN=1,其序列号为 seq = u(等于前面已经传送过来的数据的最后一个字节的序号加1),
  此时,客户端进入 FIN-WAIT-1(终止等待1)状态。
第二次挥手:
  服务器收到连接释放报文,发出确认报文,ACK = 1,ack = u + 1,并且带上自己的序列号 seq = v,
  此时,服务端就进入了 CLOSE-WAIT(关闭等待)状态。
第三次挥手:
  服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN = 1,ack = u + 1,
  由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为 seq = w,
  此时,服务器就进入了 LAST-ACK(最后确认)状态,等待客户端的确认。
第四次挥手:
  客户端收到服务器的连接释放报文后,必须发出确认,ACK = 1,ack = w + 1,而自己的序列号是 seq = u + 1,
  此时,客户端就进入了 TIME-WAIT(时间等待)状态。

四次的原因:
    这是因为服务端的 LISTEN 状态下的 SOCKET 当收到 SYN 报文的建连请求后,它可以把 ACK 和 SYN(ACK 起应答作用,而 SYN 起同步作用)放在一个报文里来发送。     
    但关闭连接时,当收到对方的 FIN 报文通知时,它仅仅表示对方没有数据发送给你了;
    但未必你所有的数据都全部发送给对方了,所以你未必会马上会关闭 SOCKET ,
    也即你可能还需要发送一些数据给对方之后,再发送 FIN 报文给对方来表示你同意现在可以关闭连接了,
    所以它这里的 ACK 报文和 FIN 报文多数情况下都是分开发送的.

DNS

DNS Prefetch -  DNS 预获取,是前端优化的一部分。一般来说,在前端优化中与 DNS 有关的有两点:
  1. 减少 DNS 的请求次数
  2. 进行 DNS 预获取

CDN

Content Delivery Network,即内容分发网络
CDN 是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
CDN 的关键技术主要有内容存储和分发技术。

CDN的优势:
  1. CDN 节点解决了跨运营商和跨地域访问的问题,访问延时大大降低;
  2. 大部分请求在 CDN 边缘节点完成,CDN 起到了分流作用,减轻了源站的负载。

CDN & 静态资源

  静态资源本身具有访问频率高、承接流量大的特点,因此静态资源加载速度始终是前端性能的一个非常关键的指标。CDN 是静态资源提速的重要手段。

CDN & Cookie

  静态资源往往并不需要 Cookie 携带什么认证信息。把静态资源和主页面置于不同的域名下,就可以完美地避免请求中携带不必要的 Cookie。

HTTP 强缓存&协商缓存

  1. HTTP 协议主要是通过请求头当中的一些字段来和服务器进行通信,从而采用不同的缓存策略。
  2. HTTP 通过缓存将服务器资源的副本保留一段时间,这段时间称为新鲜度限值。这在一段时间内请求相同资源不会再通过服务器。
  3. HTTP 协议中 Cache-Control 和 Expires 可以用来设置新鲜度的限值。

强缓存 ( Cache-Control 和 Expires )

强缓存主要是采用响应头中的 Cache-Control 和 Expires 两个字段进行控制的。

其中 Expires 是 HTTP 1.0 中定义的,它指定了一个绝对的过期时期。而 Cache-Control 是 HTTP 1.1 时出现的缓存控制字段。
注: 这两个字段同时使用的时候 Cache-Control 的优先级会更高一点。

客户端都会通过对比本地时间和服务器返回的生存时间来检测缓存是否可用。如果缓存没有超出它的生存时间,客户端就会直接采用本地的缓存。如果生存日期已经过了,这个缓存也就宣告失效。接着客户端将再次与服务器进行通信来验证这个缓存是否需要更新。

协商缓存 ( Last-Modified 和 Etag )

协商缓存机制下,浏览器需要向服务器去询问缓存的相关信息,进而判断是重新发起请求、下载完整的响应,还是从本地获取缓存的资源。
如果服务端提示缓存资源未改动(Not Modified),资源会被重定向到浏览器缓存,这种情况下网络请求对应的状态码是 304。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,482评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,377评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,762评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,273评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,289评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,046评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,351评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,988评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,476评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,948评论 2 324
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,064评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,712评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,261评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,264评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,486评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,511评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,802评论 2 345

推荐阅读更多精彩内容