private static string SHA1(byte[] clearData){using (System.Security.Cryptography.SHA1 sha1 = System.Security.Cryptography.SHA1.Create()){return Convert.ToBase64String(sha1.ComputeHash(clearData));}}
//固定值,拼接到末尾byte[] salt = Encoding.ASCII.GetBytes("258EAFA5-E914-47DA-95CA-C5AB0DC85B11");//从客户端拿到Keystring requestKey = request.GetHeader("Sec-WebSocket-Key");byte[] clearKey = Encoding.ASCII.GetBytes(requestKey);//生成响应Key,发送给客户端string responseKey = SHA1(clearKey.Concat(salt).ToArray());response.SetHeader("Sec-WebSocket-Accept", responseKey);

逻辑:Base64Encode(SHA1BytesResult([Sec-WebSocket-Key] + '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'))

SHA1BytesResult的返回值为20字节的SHA1结果,非40字节的HEX字符,所以Base64编码结果一定是28位。

WebSocket:响应头‘Sec-WebSocket-Accept‘的生成相关推荐

  1. springboot websocket 传递 头信息 协议头 token 的前后端解决方案

    文章目录 一.前言 二.js websocket 传递token 2.1 基于协议头 三.后台取出websocket协议头的参数 3.1 取出token 3.2 注意大坑 四.结尾 一.前言 关于sp ...

  2. flv直播流播放视频,websocket响应造成内存泄漏 浏览器崩溃

    项目现状: 问题:公司做了个监控设备的直播流大屏,技术使用了flv 和websocket,项目写好了,拿到他们那边使用运行了40分钟 浏览器崩溃了,报内存不足 ## 解决思路一:第一个我想到的是flv ...

  3. http 请求头、响应头、请求体的各个属性的含义

    常用标准请求头字段 Accept 设置接受的内容类型 Accept: text/plain Accept-Charset 设置接受的字符编码 Accept-Charset: utf-8 Accept- ...

  4. iOS开发之HTTP的请求头和响应头 以及常见的响应状态码

    *************请求头************** 请求头:包含了对客户端的环境描述.客户端请求信息等 GET /minion.png HTTP/1.1   //包含了请求方法.请求资源路径 ...

  5. js 链接websocket马上断开_SpringBoot+WebSocket实现简单的数据推送

    问题背景 为什么要要用websocket呢?websocket相对于传统http协议有什么优势呢? http协议有一个缺陷,就是通信只能由客户端发起,服务器返回数据,不能做到服务器主动向客户端推送.这 ...

  6. http状态码 以及请求响应头相关

    1xx消息[编辑] 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非 ...

  7. Request Headers 和Response Headers——请求头和响应头

    前沿 作为一个前端开发工程师看不懂每条请求的请求头和响应头,实在是一件很难受的事情.最近花了一些时间整理了一篇文档,一起来看看前后端交互时每个资源的信息. 谷歌浏览器调试工具--查看请求资源的信息数据 ...

  8. http常用请求头与响应头字段详解

    请求头 Accept: 例: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/ ...

  9. 请求头(request headers)和响应头(response headers)解析

    原文地址:https://www.cnblogs.com/fighter007/p/8445435.html HTTP 中文开发手册:http://www.php.cn/manual/view/355 ...

  10. HTTP常见请求头/响应头

    一.常用的http请求头 1.Accept Accept: application/json  浏览器可以接受服务器回发的类型为 application/json. Accept: */*   代表浏 ...

最新文章

  1. 交叉熵理解深度学习互信息
  2. 全面认识网络诊断命令功能与参数——netsh diagnostic命令
  3. numpy.random.randn()与numpy.random.rand()的区别(转)
  4. 计算机也可以看“视频”,理解“视频”
  5. CF819E:Mister B and Flight to the Moon(构造、归纳法)
  6. python 决策树 字符型_Python判断字符串是否xx开始或结尾的示例
  7. jQuery初识 - jQuery中的方法
  8. 定积分华里士公式推广_数学分析第九章《定积分》备考指南
  9. 保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护 2
  10. SQL Server 2008无日志文件附加数据库
  11. Mybatis3.4.x技术内幕(十七):Mybatis之动态Sql设计原本(上)
  12. 道指30只成分股的股价及历史股价抓取分析
  13. uoj132/BZOJ4200/洛谷P2304 [Noi2015]小园丁与老司机 【dp + 带上下界网络流】
  14. stm32采集脉冲信号_STM32单片机怎么产生脉冲信号控制步进电动机?
  15. 美国弗吉尼亚大学计算机科学,弗吉尼亚大学计算机科学专业
  16. 简历准备(一)—— TPLink
  17. 夜神模拟器BURP抓包设置
  18. PHP实现的敏感词过滤方法
  19. 2012伦敦奥运会垃圾邮件大战提前上演
  20. poi ppt 作者属性 修改_ppt文字属性-如何让PowerPoint里作者等信息不被修改自己辛辛苦苦做的工 爱问知识人...

热门文章

  1. 诺基亚n1 android 64位,诺基亚N1开始推送安卓5.0.2系统更新
  2. powershell中替换文件内容的方法
  3. 诺基亚(Nokia)E7-00联通定制版移动上网的方法(暴力推荐)
  4. linux ubuntu环境下 android jdk sdk eclipse adt 以及手机连接无法识别的解决方法
  5. 算法与数据结构学习(46)-B树、B+树和B*树
  6. 和ZLTT一起学pwn 2.ret2text
  7. Android错误提示及解决方案(持续更新)
  8. python+openpyxl报KeyError: “There is no item named ‘[].xml‘ in the archive“
  9. 部署安装cobbler,实现批量安装CentOS7、Ubuntu17.04、Ubuntu18.04(快捷版)
  10. 告别下载速度慢!Docker配置阿里云镜像仓库