4.9日读物note

97 阅读2分钟

原文连接:jelly.jd.com/article/605… 本文仅是自己的笔记。

web通信

传统的通信方式:

客户端发送请求向服务器。服务器收到消息后再返回给客户端。

image.png 三次握手四次挥手

image.png

关键词解释:SYN:(synchronous):表示建立连接; ACK:(scknowledgement):表示响应; FIN:(finish):表示关闭连接

HTTP的演进:

HTTP ---> HTTP/2

HTTPS(不是新的协议,而是在之前的应用层和传输层之间引入了安全层)

HTTP先和SSL/TSL进行通信,在由SSL/TSL和TCP通信

几种加密方式:

1、对称加密 客户端请求时携带公钥和使用公钥加密后的内容,服务端接受到之后再通过公钥进行解密,但是这样在传输的过程中,如果黑客截获了传输的内容,那么就可以直接使用公钥(因为公钥是随着请求一起发送出去的)解密我们客户端发送的数据。

2、非对称加密: 客户端使用公钥进行数据加密,到达服务端后使用私钥进行解密。 优点:安全 缺点:加密解密时间过长 3、混合加密: 客户端发送使用公钥加密过后的数据,但是公钥需要私钥才能解密获取到,这样一来我们就可以快速的拿到公钥,然后对数据进行解密。

实时web通信

第一种:短轮询

    function request(){
        setTimeout(function(){
            fetch(url).then(()=>{
                request();
            })
        })
    }

第二种:基于iframe的长链接流(stream)模式

第三种:SSE Server-Sent Events 它是一个构造函数,我们需要使用它的实例

    const sse = new EventSource('url');
    //建立连接时触发
    sse.addEventListener('open', function(e){}, false);
    //接收到新消息时触发
    sse.addEventListener('message', function(e){}, false);
    //无法建立连接时触发
    sse.addEventListener('error', function(e){}, false);

第四种:WebSocket