title: The role of Selenium in the Webdriver specs, and getting a browser to accept webdriver requests
body: <p>I am using Selenium right now to control Chrome.  I am confused by the Selenium protocol and the W3c standards regarding WebDrivers.</p>
  
  <p><strong>QUESTION</strong>: What's the relationship between Selenium's protocol and the Webdriver standard? And are the webdrivers built into the browsers themselves?</p>
  
  <p>I know that browsers expose <a href="https://www.w3.org/TR/webdriver/#h-list-of-endpoints" rel="nofollow noreferrer">webdriver interface</a>. That's basically a bunch of URLs.</p>
  
  <p>More specifically (although they are different facets of the <strong>same</strong> question):</p>
  
  <ul>
  <li><p>I semi-understand that Selenium has a its own protocol, which is "similar" to what the W3 specs say. I couldn't find info about the differences. What are they? Are they converging?</p></li>
  <li><p>Why does Selenium need the Chromedriver? (and especially the Chromedriver browser) Can't it just connect straight to the Chrome instance?</p></li>
  <li><p>Selenium offers a server which then forwards the requests to a remote browser. My understanding is that the headless client talks to a server, which runs a headless Chrome and reports back to the headless client the answers. Is that just a pure "proxy"? Does the selenium server use the W3 API?</p></li>
  <li><p>If I wrote a thin layer around the W3 specs (that is, just a script that makesNow... 
  calls following the W3 protocol), how can I talk to the browser directly? I couldn't find any clear instructions anywhere on how to do that</p></li>
  <li><p>Again with my thin layer: if I wanted to control a remote browser, would I just need to proxy those calls to a server running a headless chrome?</p></li>
  </ul>
  
  <p>I guess the question boils down to:</p>
  
  <ul>
  <li>If I wanted to get rid of Selenium altogether, and just use the specs naked, could I do just that? If so, how? And would would I "miss out" on?</li>
  </ul>
  
  <p><strong>UPDATE 1</strong>: I just realised that the ChromeDriver executable is actually released by Google itself. It's not Selenium! So, I guess I can just run the ChromeDriver command and connect to it...</p>