http 协议_DNS_域名解析 DNS 服务器_内容分发网络 CDN_缓存机制_HTML5 浏览器存储技术_cookie_sessionStorage_localStorage
TCP/IP 协议族 是按层次去划分的
应用层 决定了向用户提供应用服务时通信的活动。
FTP 协议(文件传输协议)
DNS(域名协议)
HTTP(超文本传输协议)
传输层 提供处于网络连接中两台计算机之间的数据传输
TCP(传输控制协议)
UDP(用户数据报协议)
网络层 用来处理在网络上流动的数据包
IP 协议
数据链路层 用来处理连接网络的硬件设备

Http 协议
HTTP/0.9
HTTP/1.0
HTTP/1.1(主流)
HTTP/2.0
用于 客户端 和 服务端 之间的通信
HTTP 协议是在 TCP/IP 协议族 的基础上运作起来的
其属于 TCP/IP 协议族内的 应用层
HTTP 协议是无状态、无连接的协议
一次完整的请求,我们需要注意什么?
- DNS 是否可以通过缓存来减少查询 IP 地址的时间?
DNS 的查找是有开销的,通常浏览器查找一个给定的主机名的 IP 地址需要花费 20 到 120 毫秒
在 DNS 查找完成之前,浏览器不能从主机那下载任何东西
DNS 是可以被缓存起来提高性能的
由于 服务器的 IP 地址是可变的,缓存也会消耗内存,因此不管是哪个级别的缓存都应该周期性的清除一下。
- 网络的请求过程是否走的是最近的网络?
CDN 内容分发网络(Content Delivery Networks)
分布在多个不同地理位置的web服务器,用于更加有效的向用户发布内容
- 最简单的 CDN 网络 = 一个DNS服务器 + 几台缓存服务器
1. 当用户点击网站页面上的内容 URL,经过本地 DNS 系统解析,
DNS 系统会最终将域名的解析权交给 CNAME 指向的 CDN 专用 DNS 服务器。
2. CDN 的 DNS 服务器将 CDN 的全局负载均衡设备 IP 地址返回用户。
3. 用户向 CDN 的全局负载均衡设备发起内容 URL 访问请求。
4. CDN 全局负载均衡设备根据用户 IP 地址,以及用户请求的内容 URL,
选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
5. 区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,
选择的依据包括:根据用户 IP 地址,判断哪一台服务器距用户最近;
根据用户所请求的 URL 中携带的内容名称,判断哪一台服务器上有用户所需内容;
查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。
基于以上这些条件的综合分析之后,
区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的 IP 地址。
6. 全局负载均衡设备把服务器的 IP 地址返回给用户。
7. 用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。
如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,
那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。
CDN 不仅做内容分发加速,还做安全防护问题。
不会一台服务器的当机,整个请求的瘫痪。
缓存机制
客户端 与 服务器 协商的缓存策略
- 是否可以少发几次请求?
资源合并
- 请求体是否可以尽量的小?
资源压缩
- 减少 DNS 查询?
一个多资源的站点最好使用 2 到 4 个不一样的主机来存放服务端资源(在减少DNS查询和允许高度并行下载之间作出的最好权衡)
使用 Keep-alive 进行持久连接
DNS 域名解析服务
DNS 协议 提供通过域名查找IP,或逆向从 IP 地址反查域名的服务
DNS服务是 和 HTTP协议一样,位于应用层的协议,它提供域名到 IP 地址之间的解析服务。
chrome://dns/ 或 chrome://net-internals/#dns 查看浏览器上的DNS缓存
ipconfig/displaydns 查看操作系统中的DNS缓存
在哪里?
查找浏览器缓存
查找 PC 本机系统缓存
查找 路由器 缓存
查找ISP DNS 缓存。(网络运营商,如 电信/联通 服务器 )
递归搜索 DNS 根服务器(全球只有 13 台)
HTML5 浏览器本地存储技术 Application (有这三种技术:cookie, sessionStorage, localStorage____都是字符串类型的键值对)
(另外还有一种存储模式叫:session; 这种级别的存储属于服务端会话级别的存储)
面试题: 如何实现页签之间的通信?
- cookie ----> http 无状态解决方案
会话 cookie
人为 cookie
cookie 是纯文本格式,静态资源是不会携带 cookie 的
不包含任何可执行的代码信息,伴随着用户请求在 Web 服务器和浏览器之间传递
本质上属于 http 的范畴,因为 http 协议本身是无状态的,服务端是没有办法区分请求来自于哪个客户端
即便是来自于同一个客户端的多次请求 我们的服务端也是没有能力来区分的,所以才需要 cookie 去维持客户端的状态
cookie 一般都是后台用的,很少让前端来直接写
cookie 分 : 持久级别、session 级别(cookie 一般用于和 session 通信)
缺点:
安全性低,易被截获:由于 cookie 在HTTP中是明文传递的,其中包含的数据都可以被他人访问,可能会被篡改、盗用
大小限制: cookie 的大小限制在4KB左右,一个网页最好至多 20 个左右的 cookie。
增加流量,无形中占用带宽: cookie 每次请求都会被自动添加到 Request Header 中,无形中增加了流量
cookie 信息越大,对服务器请求的时间也越长。因此要慎用cookie,不要在cookie中存储重要和敏感的数据
- 客户端生成:
在 JavaScript 中通过 document.cookie 属性,你可以创建、维护和删除 cookie
设置 document.cookie 属性的值并不会删除存储在页面中的所有 cookie____它只简单的创建或修改字符串中指定的 cookie
要使用 JavaScript 提取 cookie 的值,只需要从 document.cookie 中读取即可
- 服务端生成:
Web 服务器通过发送一个称为 Set-Cookie 的 HTTP 消息头来创建一个 cookie
HttpOnly
为避免跨域脚本 (XSS) 攻击,通过 JavaScript的 Document.cookie API 无法访问有 HttpOnly 标记的Cookie
WebStorage ----> 浏览器本地存储,且存储的必须是 字符串(一般是 JSON.stringify(xxx))____一般允许 5M 甚至更大
浏览器端通过 window.sessionStorage 和 window.localStorage 属性来实现本地存储机制
例如:KEY='person'; person={"name":"WuKong"};
- sessionStorage 会话存储(浏览器打开 到 关闭)
当浏览器退出时,会自动删除 sessionStorage 中的数据
保存数据 sessionStorage.setItem(KEY, JSON.stringify(person));
读取数据 sessionStorage.getItem(KEY);
删除数据 sessionStorage.removeItem(KEY);
- localStorage 永久存储(永久,除非人为删除)
----> 对应 'storage' 事件 e.newValue 进行页签间的数据通信/同步 e.oldValue____HTML5 提供的新功能
e.key 修改或删除的 key 值,如果调用 clear(),为 null
e.newValue 新设置的值,如果调用 clear(),为 null
e.oldValue 调用改变前的 value 值,如果调用 clear(),为 null
e.url 触发该脚本变化的文档的 url
e.storageArea 当前的 storage 对象
保存数据 localStorage.setItem(KEY, JSON.stringify(person));
读取数据 localStorage.getItem(KEY);
删除数据 localStorage.removeItem(KEY);
清空数据 localStorage.clear();
http 协议_DNS_域名解析 DNS 服务器_内容分发网络 CDN_缓存机制_HTML5 浏览器存储技术_cookie_sessionStorage_localStorage的更多相关文章
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器解决方案之CDN内容分发网络
背景分析 EasyDSS流媒体解决方案提供一站式的转码.点播.直播.录像.检索.时移回放服务,极大地简化了开发和集成的工作,并且EasyDSS支持多种特性,完全能够满足企业视频信息化建设方面的需求.其 ...
- CDN加速-内容分发网络
内容分发网络 (互联网技术) 编辑 CDN的全称是Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输 ...
- Web前端性能优化教程02:使用内容分发网络
基础知识 服务器离用户越近,HTTP请求的响应时间将更短. CNAME:别名记录,当多个域名需要指向同一服务器IP,可以使用一个域名做A记录指向该服务器IP,然后让多个域名指向该A记录. ICP:In ...
- CDN(内容分发网络)技术原理
1. 前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加, 用户数量也在不断增加,受Web服务器的负荷和传输距离 ...
- CDN 内容分发网络技术
1.前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因 ...
- 深度剖析:CDN内容分发网络技术原理--转载
1.前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因 ...
- [转]CDN(内容分发网络)技术原理
1. 前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加, 用户数量也在不断增加,受Web服务器的负荷和传输距离 ...
- 史上最全的CDN内容分发网络实战技巧(网络优化)
今天来给大家分享下关于 CDN 的东西,以及我自己的一些发现.一些个人的拙见.总共分为 3 个部分:原理.详解.各种坑. 首先说一下 CDN 的基本原理部分,主要分 4 块来描述:CDN 的由来.调度 ...
- CDN内容分发网络
CDN的全称是Content Delivery Network,即内容分发网络,其设计思想是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定. CDN系统是在网络 ...
随机推荐
- mysql数据库truncate表时间长处理
[环境介绍] 系统环境:Linux + mysql 5.7.18 + 主从复制架构 [背景描述] 客户反映用在mysql数据库上truncate一个innode引擎的list分区100G左右表时,耗时 ...
- VIM --使用进阶 -- 插件篇 -- YouCompleteMe -- nerdtree
系统:ubuntu: 资源:https://github.com/ 其他:想了解都要哪些好用的插件,推荐大家读 http://blog.csdn.net/mergerly/article/detail ...
- “字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛 1010 Count
思路:矩阵快速幂.推一下初始矩阵就好了 #include<bits/stdc++.h> #define LL long long #define fi first #define se s ...
- 封装ajax,让调用变得简单优化
思考一下: 通常我们在使用ajax来发送接口请求时,每一次都会调用ajax固定的元素,比如data.url.method.success.error等.那么我们想一下能不能先把ajax封装起来,在每次 ...
- centos6,与centos7对于防火墙的操作
CentOS 6.5 1.开放指定端口/sbin/iptables -I INPUT -p tcp --dport 端口号 -j ACCEPT //写入修改/etc/init.d/iptables ...
- 【转】【Linux】Swap与Memory
背景介绍 Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级.所以,程序和数据如果在内存的话,会有非常快的读写速度.但是,内存的造价是要高于磁盘的,且内存的断电丢失数据也 ...
- centos7 docker升级到最新稳定版本
原文:centos7 docker升级到最新稳定版本 一.前言 docker的版本分为社区版docker-ce和企业版dokcer-ee社,区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外 ...
- vector 的用法--------------自绘资源
创建 命名 选择根元素 当然你也可以选择其他元素 属性介绍vector 元素 name:定义该矢量图形的名字.通过名字找到这个矢量图width,height:定义该矢量图形的固有宽高(必须的,矢量图内 ...
- 《剑指offer》二叉搜索树和双向链表
本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:
- ios中safari无痕浏览模式下,localStorage的支持情况
前言 前阶段,测试提了个bug,在苹果手机中无痕模式下,搜索按钮不好使,无法跳页,同时搜索历史也没有展示(用户搜索历史时使用localStorage存储). 正文 iOS上Sarfari在无痕模式下, ...