1.谈谈你对http协议的认识

  浏览器本质,socket客户端遵循Http协议
  HTTP协议本质:通过\r\n分割的规范,请求响应之后断开链接 ==> 短连接、无状态
具体:
  Http协议是建立在tcp/ip之上的,是一种规范,它规范定了发送的数据的数据格式,
然而这个数据格式是通过\r\n进行分割的,请求头与请求体也是通过2个\r\n分割的,响应的时候,
响应头与响应体也是通过\r\n分割,并且还规定已请求已响应就会断开链接,即-->短连接、无状态

2.谈谈你对websocket协议的认识

websocket是给浏览器新建的一套(类似于http)协议,协议规定:浏览器和服务器连接之后不断开,以达到服务端向客户端主动推送消息。
本质:
创建一个连接后不断开的socket
当连接成功之后:
    客户端(浏览器)会自动向服务端发送消息,包含:Sec-WebSocket-Key: iyRe1KMHi4S4QXzcoboMmw==
    服务端接收之后,会对于该数据进行加密:base64(sha1(swk + magic_string))
    构造响应头:
            HTTP/1.1 101 Switching Protocols\r\n
            Upgrade:websocket\r\n
            Connection: Upgrade\r\n
            Sec-WebSocket-Accept: 加密后的值\r\n
            WebSocket-Location: ws://127.0.0.1:8002\r\n\r\n        
    发给客户端(浏览器)
建立:双工通道,接下来就可以进行收发数据
    发送数据是加密,解密,根据payload_len的值进行处理
        payload_len <= 125
        payload_len == 126
        payload_len == 127
    获取内容:
        mask_key
        数据
        根据mask_key和数据进行位运算,就可以把值解析出来。

 3.什么是magic string?

 客户端向服务端发送消息时,会有一个'sec-websocket-key'和'magic string'的随机字符串(魔法字符串),
 服务端接收到消息后会把他们连接成一个新的key串,进行编码、加密,确保信息的安全性。

4.如何创建响应式布局?

响应式布局是通过@media实现的
@media (min-width:768px){
     .pg-header{
           background-color:green;
      }      
}
@media   (min-width:992px){
     .pg-header{
            background-color:pink;
     }
}    

代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Title</title>
    <style>
        body{
            margin: 0;
        }
        .pg-header{
            background-color: red;
            height: 48px;
        }

        @media (min-width: 768px) {
            .pg-header{
                background-color: aqua;
            }
        }
        @media (min-width: 992px) {
            .pg-header{
                background-color: blueviolet;
            }
        }
    </style>
</head>
<body>
    <div class="pg-header"></div>
</body>
</html>
View Code

相关文章:

  • 2021-08-03
  • 2021-10-02
  • 2021-07-15
  • 2021-10-30
  • 2021-08-09
  • 2022-12-23
  • 2022-02-10
猜你喜欢
  • 2021-10-05
  • 2021-11-25
  • 2021-10-18
  • 2022-12-23
相关资源
相似解决方案