Socket:一套网络编程API,利用它可以建立网络连接
HTTP请求的特点:通信只能由客户端发起 所以,为了实现推送技术,很多技术方案都是轮询 轮询是指由浏览器每隔一段时间(如每几秒)向服务器发出HTTP请求,然后服务器返回最新的数据给客户端
为了能更好的节省服务器资源和带宽,并且能够更实时的进行通讯,HTML5规范中出现了WebSocket协议
WebSocket
WebSocket是基于TCP的,支持全双工通信的应用层协议 客户端、服务端,任何一方都可以主动发消息给对方
HTTP vs WebSocket
- HTTP和WebSocket属于平级关系,都是应用层的协议
TCP本身就是支持全双工通信的 只是HTTP是“请求-应答”模式,限制了TCP的能力
WebSocket - 建立连接
WebSocket需要借助HTTP协议来建立连接(也叫作握手,Handshake) 由客户端(浏览器)主动发出握手请求
HTTPDNS
HTTPDNS是基于HTTP协议向DNS服务器发送域名解析请求 可以避免Local DNS造成的域名劫持 和 跨网访问问题
FTP
File Transport Protocol,文件传输协议 是基于TCP的应用层协议
VPN(Virtual Private Network)
虚拟私人网络 俗称:科学上网 它可以在公共网络上建立专用网络,进行加密通讯
作用:
- 提高上网的安全性
- 保护公司内部资料
- 隐藏上网者的身份
- 突破网站的地域限制
- 突破网络封锁
VPN的实现原理:使用了隧道协议
网络爬虫
网络爬虫(Web Crawler) 也叫 网络蜘蛛(Web Spider) 模拟人类使用浏览器操作页面的行为,对页面进行相关的操作
常用爬虫工具:Python的Scrapy框架
缓存(Cache)
缓存,是指将服务器返回的数据,缓存在浏览器内存或者硬盘上
一般缓存的是GET请求的静态资源(比如HTML、CSS、JS、图片等)
缓存 - 响应头
Pragma:作用类似于Cache-Control Expires: 缓存的过期时间(比如:2025年12月12日) Cache-Control:设置缓存策略
- no-storage: 不缓存数据到本地
- public: 允许用户、代理服务器缓存数据到本地
- private:只允许用户缓存数据到本地
- max-age: 缓存的有效时间,单位秒(比如120秒)
- no-cache: 每次需要发请求给服务器询问缓存是否有变化,再来决定如何使用缓存
优先级: Pragma > Cache-Control > Expires
Last_Modified:资源的最后一次修改时间 ETag: 资源的唯一标识
优先级: ETag > Last_Modified
缓存的使用流程
|