前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、目的

新媒体测试中,经常使用F12键查看network中ws信令交互过程,因此进一步了解了http协议与ws协议的相同与不同点。

二、HTTP协议

1.HTTP协议介绍

HTTP协议是用来在Internet上传送超文本的传送协议,它是运行在TCP/IP协议簇之上的应用协议。HTTP协议为单向协议,即浏览器只能向服务器请求资源,服务器才能将数据传送给浏览器,而服务器不能主动向浏览器传递数据。

2.长连接与短连接

HTTP协议分为长连接和短连接,短连接是每次http请求时都需要三次握手才能发送自己的请求,每个request对应一个response;长连接是短时间内保持连接,保持TCP不断开,指的是TCP连接。

2.1、短连接

在HTTP/1.0 中,默认使用短连接。即Client向server发起连接请求,server接到请求,然后双方建立连接,Client向server发送消息, server回应client,然后一次读写就完成了。这时双方任意一放都可以发起close请求,一般都是client发起close请求。

2.2、长连接

从 HTTP/1.1 起,默认使用长连接,保持连接持续性。 client向server发送连接请求,server接受client连接,双方建立连接,client与server完成一次读写之后, 他们并不会主动关闭,后续的读写操作会继续使用这个连接。故长连接还涉及到TCP的保活功能

2.3、长连接与短连接的优点和缺点

长连接可以省去较多的TCP建立和关闭的操作,减少浪费,节约时间。对于频繁请求资源的客户端适合使用长连接。在长连接的应用场景下,client端一般不会主动关闭连接,当client与server之间的连接一直不关闭,随着客户端连接越来越多,server会保持过多连接。这时候server端需要采取一些策略,如关闭一些长时间没有请求发生的连接,这样可以避免一些恶意连接导致server端服务受损;如果条件允许则可以限制每个客户端的最大长连接数,这样可以完全避免恶意的客户端拖垮整体后端服务。
短连接对于服务器来说管理较为简单,存在的连接都是有用的连接,不需要额外的控制手段。但如果客户请求频繁,将在TCP的建立和关闭操作上浪费较多时间和带宽。

3.长连接的保活机制

保活功能主要为服务器应用提供,服务器应用希望通过判断客户端主机是否崩溃, 从而判断服务器端应用是否断开TCP保留的长连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。如果连接在设定的时间内没有任何的动作,则服务器就向客户端发送一个探测报文段,客户端必须处于以下四种转态。
1、客户端主机依然正常运行,并从服务器可达,客户的TCP响应正常,而服务器也知道对方是正常的,服务器在两小时之后将保活计时器复位。
2、客户端已经崩溃,并且关闭或者正在重启。在任何一种情况下,客户端的TCP都没有响应,那么服务器端也就不能收到探测响应。 并在75秒后超时,服务器共发送10个这样的探测,每个间隔75秒,如果客户端没有收到一个响应,就认为客户端主机已经关闭并终止连接。
3、客户端主机已经崩溃,但是已经重新启动。服务器将收到一个对其保活探测的响应,这个响应是一个复位,使得服务器终止这个连接。
4、客户端正常运行,但服务器不可达,类似第二种状态。

三、WS协议

HTTP协议与WS协议都是建立在TCP协议上的应用协议。
Websocket是html5提出的一个协议规范,是为解决客户端与服务端实时通信。本质上是一个基于tcp,先通过HTTP/HTTPS协议发起一条特殊的http请求进行握手后创建一个用于交换数据的TCP连接。WS协议在浏览器与服务端建立连接后,WebSocket服务器和Browser/UA都能主动的向对方发送或接收数据。
WS协议有两部分组成:握手和数据传输。WebSocket在建立握手连接时,数据是通过http协议传输的,“GET/chat HTTP/1.1”,这里面用到的只是http协议一些简单的字段。但是在建立连接之后,真正的数据传输阶段是不需要http协议参与的。
WS协议下,浏览器和服务器只需要要做一个握手的动作,在建立连接之后,双方可以在任意时刻,相互推送信息。同时,服务器与客户端之间交换的头信息很小。

四、WS协议与HTTP协议的区别

HTTP1.1通过使用Keep-Alive功能实现长连接,在一次 TCP 连接中可以完成多个 HTTP 请求,但是对每个请求仍然要单独发 header,Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。这种长连接是一种“伪链接”。keep-alive双方并没有建立正真的连接会话,服务端可以在任何一次请求完成后关闭。
websocket的长连接,是一个真的全双工。长连接第一次tcp链路建立之后,后续数据可以双方都进行发送,不需要发送请求头。WebSocket 它本身就规定了是正真的、双工的长连接,两边都必须要维持住连接的状态。

HTTP协议与WS协议小结相关推荐

  1. 微信小程序的 websocket 以及 微信开发者工具测试 ws 协议没有数据的 离奇解决方案 记录

    微信小程序的 websocket 在本地web能够使用ws协议去链接websocket,但是小程序不能使用. 一.WSS 协议与 WS 协议 二.业务场景记录 : 使用 ws 协议的 websocek ...

  2. WS协议—介绍及原理

    举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果.HTTP 协议做不到服务器主动向客户端推送信息. WebSocket 协议在2008年诞生,2011年成为国际标准.所 ...

  3. websocket ws 协议 简介

    一.内容概览 WebSocket的出现,使得浏览器具备了实时双向通信的能力.本文由浅入深,介绍了WebSocket如何建立连接.交换数据的细节,以及数据帧的格式.此外,还简要介绍了针对WebSocke ...

  4. 基于netty访问WebSocket(java的websocket客户端)(访问远程ws协议)

    1. 首先创建mvn项目 2. pom中导入jar包 <dependency><groupId>io.netty</groupId><artifactId&g ...

  5. 谈谈surging引擎的tcp、http、ws协议和如何容器化部署

    1.前言 分布式已经成为了当前最热门的话题,分布式框架也百花齐放,群雄逐鹿.从中心化服务治理框架,到去中心化分布式服务框架,再到分布式微服务引擎,这都是通过技术不断积累改进而形成的结果.esb,网关, ...

  6. nginx websocket wss 连接失败 failed_浅谈WebSocket协议、WS协议和WSS协议原理及关系

    现如今,一些游戏,网站,APP,支付行业的网络经常会收到DDOS和CC,因此这个事情也变得不足为奇了.但在防护方案中有多种不同的方案.如,今天有几个同事在针对高防CDN问题讨论的时,谈到WebSock ...

  7. php reactphp wss_浅谈WebSocket协议、WS协议和WSS协议原理及关系

    websocket在实时通信领域运用的比较多,比如社交聊天.弹幕.多玩家游戏.协同编辑.股票基金实时报价.体育实况更新.视频会议/聊天.基于位置的应用.在线教育.智能家居等需要高实时的场景. 具体到w ...

  8. docker 部署BSC(币安智能链)v1.1.2版本开发网--ws协议

    文章目录 一. 编写说明 1.1 文档说明 1.2 配置信息 1.3 部署文档信息 二.BSC开发网镜像生成 三.BSC开发网容器生成 3.1 配置文件编写 3.2 预先创建一个账户地址 3.3 创建 ...

  9. 【行情获取】通过WebSocket使用ws协议获取黄金、外汇实时行情(行情自动推送,方便实现数据驱动下的自动交易)

    文章目录 前言 一.WebSocket是什么? 二.使用准备 1. 引入websocket-client库 2. 获取websocket行情数据 三.获取黄金行情的完整代码 总结 前言 一.WebSo ...

最新文章

  1. 深度学习机器配置 装机指南:从GPU到显示器,全套硬件推荐
  2. 清华大学 现代软件工程 学生特别想学的领域
  3. nodejs mysql事务处理_关于NodeJs如何使用Mysql模块实现事务处理实例
  4. 腾讯加速推进防沉迷新规:新增21款产品 微信/QQ小游戏接入
  5. EK中fromCharCode和parseInt的配合使用
  6. 【推导】【DFS】Codeforces Round #429 (Div. 1) B. Leha and another game about graph
  7. 世界杯广告中出现汉字,不利于国际化
  8. Oracle的学习视频
  9. PS如何删除智能图层为可编辑状态
  10. 【Android】Gallery实现选中图片变大,两侧没选中图片变小
  11. ipa在线安装搭建_最新!超级签名系统源码以及搭建过程
  12. 解决谷歌浏览器主页被篡改问题
  13. UG NX二次开发(C#)-装配-添加组件AddComponent
  14. 名帖07 赵宧光 篆书《篆书四箴册》
  15. js拖拽图片到浏览器上传
  16. 【Spring Security入门教学】
  17. C# 将字符串转换成GB2312--很蛋疼的一个Class
  18. pmp-关键路径法之顺推和逆推
  19. python之爬虫神器selenium:猫眼电影榜单并进行数据可视化
  20. 基于淘宝评价的采集与产品爆款挖掘分析

热门文章

  1. 华为OD题目: 货币单位换算
  2. C语言程序设计--火车订票系统
  3. Mac移除office教程
  4. 【win10WLAN不显示问题】关于WIN10系统右下角网络中只有飞行模式没有WLAN和移动热点的解决办法
  5. 游戏算法-AOI基本介绍
  6. 写一个《最后的生还者》的观后感
  7. 计算方法 - 二分法求近似根
  8. execlp使用例子_linux系统编程之进程(五):exec系列函数(execl,execlp,execle,execv,execvp)使用...
  9. Bugku:杂项 这是一张单纯的图片
  10. 代理记账会计如何有效与企业客户沟通