Protocol和Json Wire Protocol有什么区别

时间:2019-01-26 19:43:03

标签: json http selenium-webdriver protocols webdriver-w3c-spec

协议:一种标准,用于定义通过网络交换数据的方法。 如果浏览器要与服务器通信,则必须创建一个HTTP请求并将该HTTP请求发送到服务器以传达其资源和选项请求。服务器接收请求并对其进行处理,并进行必要的操作,并创建HTTP响应以发送到浏览器。浏览器在创建HTTP请求时必须遵循HTTP规范。服务器还必须遵循HTTP规范来创建HTTP响应。这是浏览器和服务器之间以标准方式进行通信的方式,从而通过遵循HTTP协议来避免冲突。

Json Wire Protocol :客户端具有必须发送到服务器的对象。客户端将此对象转换为JSON对象,并将其发送到服务器。服务器解析JSON对象,并将其转换回对象以供使用。服务器将响应对象转换为JSON对象,然后将其发送回客户端。然后,客户端将JSON对象转换为要使用的对象。

为什么将后者称为 Json Wire Protocol

1 个答案:

答案 0 :(得分:1)

您对 Protocol JsonWireProtocol 都非常正确。在这一点上,值得一提的是,与浏览器或RemoteWebDriver服务器通信的WebDriver的所有早期实现都应使用通用的有线协议。该有线协议使用HTTP上的RESTful web service定义了JSON

JSON Wire Protocol是关于如何将自动化行为(例如单击或键入或您实际上想对自动化脚本执行的操作)如何映射到硒或appium或HTTP请求和响应的抽象规范。该协议将假定WebDriver API已被“扁平化”,但是期望客户端实现将采用更加面向对象的方法,如现有Java API所示。有线协议是在“命令”和“响应”的请求/响应对中实现的。

什么是JSON Wire protocol

JSON(JavaScript对象表示法)是一种轻量级格式,用于客户端和服务器之间的数据交换。应用程序使用JSON对象在网络世界之间相互发送和接收数据。 JSON数据结构是行业标准,可用于以Key & Value pair的形式发送和接收数据。有人说它是XML的非常好的替代品。我们可以将JSON文件保存为.json扩展名。

JSON看起来如何?

一个简单的json文件如下所示,其中有许多online editors可用于编辑和验证JSON结构。

{
 "Student":{
   "FirstName":"Pawan",
   "LastName":"Garia",
   "IdNumber":"12345",
   "City" : "New Delhi",
   "EmailID" : "email@gmail.com" }
}

为什么首先使用JSON Wire Protocol

实施客户服务器架构可以为我们带来以下好处。

  • 您可以使用任何编程语言编写测试。
  • 您可以在诸如SauceLabs,BrowserStack或Selenium Grid安装之类的云服务上执行或运行测试。
  • 您不必只在本地计算机上运行测试。
  • 可以使用相同的标准为浏览器创建不同的驱动程序(FirefoxDriver,ChromeDriver)并单独实施。

因此,客户端-服务器的实现需要事先准备一套标准的规范,以便服务器和客户端应根据请求和响应的来龙去脉相互保持同步。就像是彼此交流的语言。因此,我们需要一些通用的规范来解决这种要求,而解决方案就是HTTP。

为什么使用HTTP是解决方案?

HTTP是Web的标准,可以作为规范的良好基础。每个programming language都有一个很好的HTTP库,可用于为请求和响应调用创建客户端和服务器。

JSON Wire协议如何与HTTP一起使用?

HTTP请求和响应通常由GET和POST请求组成,因此不在本讨论范围之内。

当前状态

的角度来看, JSON Wire Protocol 现在已过时,而WebDriver W3C Living Document是新的实现。