打工者联盟为了抵抗996、拖欠工资、黑心老板、恶心公司,让我们组成打工者联盟。客观评价自己任职过的公司情况,为其他求职者竖起一座引路的明灯。https://book.employleague.cn/
一,延迟与宽带
网站越快,用户的粘性越高
网站越快,用户忠诚度越高
网站越快,用户转化率越高。
延迟:分组从信息源发送到目的地所需的时间。
宽带:通讯路径最大的吞吐量
二,TCP
SYN:客户端选择一个随机序列号x,并发送一个SYN分组,其中可能还包括其他TCP标志和选项。
SYN ACK:服务器给x加1,并选择自己的一个随机序号y,追加自己的标志和选项,然后返回相应。
ACK:客户端给x和y加1并发送握手期间的最后一个ACK分组。
流量控制:TCP连接的每一方都要告知自己的接收窗口(rwnd)。
慢启动:指数增长。
队首阻塞:按序发送TCP分组,中途有一个分组没能到接收端会发生TCP阻塞。发生在TCP层。
TCP影响性能因素:
1.TCP三次握手
2.TCP慢启动
3.TCP拥塞窗口大小
三,UDP
“”UDP仅仅是在IP层上通过嵌入应用程序的源端口和目标端口,提供了一个“应用程序多路复用”机制”
UDP是一个简单,无状态的协议。
特点:1.不确认,不重传,无超时。2.不设置包序。3.不设置拥塞控制。
NAT穿透问题:NAT设备依赖连接状态,UDP没有状态。UDP没有握手,没有终止,没有监控的连接状态机。P2P通信不清楚双方的内网和外网IP地址。
解决难穿透问题:STNU TURN ICE
STNU:两端请求STNU服务器获取外网IP地址和端口号。再用外网信息通讯(个别有防火墙可屏蔽)。
TURN:中继服务器。
ICE:先STNU不行,再TURN。
优化建议:
1.控制传输速度
2.拥塞设计
3.丢包处理
等等
四,HTTP1.0 1.1 2.0
http0.9:get请求 支持返回ASCII字符流(HTML),Nginx支持。
http1.0:有多行请求头,相应状态,响应头,数据格式多多,连接中断。
http1.1:基础上 编码 字符集 cookie 缓存指令。
http2.0:提高传输性能,低延迟 高吞吐量。
五,XMLHttpRequest
1.浏览器管理着连接建立,套接字池和连接终止;
2.浏览器决定用 1.0 1.1 2.0 哪种协议传输;
3.处理HTTP缓存,重定向和内容类型协商;
4.安全,隐私;
跨源资源共享(CORS)
浏览器沙箱设计同源策略 保护 认证令牌 cookie 和其他私有元素。浏览器不同源的访问直接拒绝。
浏览器自动解码类型:ArrayBuffer,Blob,Document,JSON,Text。
实时通知与交付实现方式:
1.XHR轮询
2.XHR长轮询
3.SSE方式(服务器发送事件)
六,Websocket
websocket是浏览器中最通用最灵活的传输机制。支持文本和二进制数据。顺序传输。
支持子协议
七,WebRTC
Web实时通讯技术,用户实现浏览器之间(端到端)的音频,视频。
三个主要API: MediaStream 获取音频视频。RTCPeerConnection 音频和视频通信。RTCDataChannel 数据通讯。