Http缓存知识;HTTPS, HTTP2相关知识;百度统计和即时线上客服。
安装 :
百度统计 来统计用户流量,
Intercom 来做即时线上客服。
这两个是 JavaScript 插件放在 HTML 上的.
HTTP缓存:
https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching
使用浏览器缓存,可以加快网页加载速度。
开发者需要确保header提供正确的指令。
用户发送请求,服务器接受后处理并返回response。它会根据请求中的data,判断是否请求内容是否已变化,没有变化的话,就在response中告诉Browser使用自身缓存,同时response中不会带data。
当服务器返回响应时,还会发出一组 HTTP 标头,用于描述响应的内容类型、长度、缓存指令、验证令牌等。例如,在上图的交互中,服务器返回一个 1024 字节的响应,指示客户端将其缓存最多 120 秒,并提供一个验证令牌(“x234dff”),可在响应过期后用来检查资源是否被修改。
通过Etag验证缓存的响应:
- 服务器使用 ETag HTTP 标头传递验证令牌。
- 验证令牌可实现高效的资源更新检查:资源未发生变化时不会传送任何数据。
第一次的请求和响应,浏览器会收到一个Etag令牌,内部存储着随机组合的数据,比如包括一个数据的updated_at时间戳。
第二次浏览器的请求内会包含这个Etag,服务器会检查相应的数据,比如看数据的updated_at时间是否发生变化,
- 如果发生变化就代表了数据发生了改变,于是服务器就发送新的response头部和相关数据。
- 如果没有变化。则response只会发送header。
上图中response告诉服务器,没有变化,服务器会更新缓存存在的时间,并使用缓存中的数据。这节约了时间和带宽。
Cache-Control
- 每个资源都可通过 Cache-Control HTTP 标头定义其缓存策略
- Cache-Control 指令控制谁在什么条件下可以缓存响应以及可以缓存多久。
最佳缓存策略:
废弃和更新缓存的response
- 在资源“过期”之前,将一直使用本地缓存的响应。
- 可以通过在网址中嵌入文件内容指纹,强制客户端更新到新版本的响应。
- 为获得最佳性能,每个应用都需要定义自己的缓存层次结构。
根据不通的内容,设置不同的缓存方案。
组合使用 ETag、Cache-Control 和唯一网址来实现一举多得:较长的过期时间、控制可以缓存响应的位置以及随需更新。
Http request和response的流程理解:
- 输入url或者点击超链接,浏览器解析它,port, host ,path等。
- 组成一个HTTP request包
- DNS服务商根据url找到对应的ip地址,把请求包发送出去。
- 请求包会通过Tcp/ip协议分割成小块。
- 通过路由中转,最后对应的网址的服务器会接受这些请求包。
- 同样根据tcp/ip协议,组装成完整的HTTP request。
- 服务器根据请求,从数据库找到相应资源,发送response给客户端浏览器。
- 当浏览器收到response,会解析它,生成一个DOM节点树。
- 然后检查html原始码中需要的资源URl, css, javascript,图片等资源, 再次发送请求给服务器下载这些资源,重复2-9。
- 服务器收到请求后,发送资源给浏览器。
- 最后当浏览器收到全部资源时,生成web-page。
网络时代每一个软件都需要连网功能。身为一个软件工程师,多了解网络原理的话,对于网络相关问题的设定和故障排查,会有很大的帮助。这份教程文字有点多,建议你还可以搭配以下阅读资料,多方理解:
- 我是一个网卡
- DNS 原理入门
- HTTP 协议入门
- 你应该知道的HTTP基础知识
- 网络协议——写给每个懂点编程的同学
- Khan: Internet 101 影片
- 图解 HTTP, 人民邮电出版社
- 网络是怎样连接的, 人民邮电出版社
Khan: Internet 101 影片 (可汗学院的影片)
Wires, cables, and WiFi
- 电缆,光缆, radio的传输的优缺点。
- 0,1是最基本的信号。
- 数据大小个格式,1btye == 8bit
IP address and DNS
Protocol协议:IP协议(各个服务器的唯一地址)
IPv4就是包含country,地区region,subnetwork, devise四部分的ip网址组成。
DNS(Domain Name System) 域名。每个域名对应一个ip地址。
Packet, routers, and reliability
数据被分成小块,发送,它没有司机也没有路径,只有IP地址。根据cheapest原则,选择传输方式。
如何保证数据完全接收?使用Tcp protocol( Transmission control protocol)。每个packet都有header记录编号,最后根据编号组成完整的data。如果发现缺失会再要求从新发送缺少的packet。
HTTP和HTML
Hypertext transfer Protocol 超文本传输协议
Hypertext Markup Language 超文本 标记语言
Https: Hypertext Transfer Protocol Secure
Https使用了SSL和TLS2个安全协议保证安全交互数据, 使用了Digital Certificate数字证书。
SSL: Secure Sockets Layer
TLS: Transport Layer Security
小结:
Http和DNS管理web文件的发送和接收;
Tcp/ip&Routing,分割和运输Packets。
Wires, Cables& Wifi管理物理层的二进制的数据传输。
Encryption and public keys
encryption and decryption 编码和解码,解码就是让信息可读
public key: 可以分享给任何人,任何人都可以用它来encryption。
private key:只有一台机器有,用来decryption公🔑编码的信息。
https 使用了安全协议。
Cybersecurity and crime 网络安全和犯罪
viruses, malware ,DDos attacks, phishing scams 网络钓鱼骗局