Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can AJAX use protocols other than HTTP or HTTPS?

I wonder if AJAX can use protocols other than HTTP or HTTPS.

like image 693
Sanghyun Lee Avatar asked Jun 10 '11 02:06

Sanghyun Lee


1 Answers

Ajax means XMLHttpRequest. Just as you don't have to use XML with XHR, you also don't have to use HTTP.

Despite its name, XMLHttpRequest can be used to retrieve any type of data, not just XML, and it supports protocols other than HTTP (including file and ftp).

From the W3C XMLHttpRequest spec (emphasis added):

The XMLHttpRequest object implements an interface exposed by a scripting engine that allows scripts to perform HTTP client functionality, such as submitting form data or loading data from a server. It is the ECMAScript HTTP API.

The name of the object is XMLHttpRequest for compatibility with the Web, though each component of this name is potentially misleading. First, the object supports any text based format, including XML. Second, it can be used to make requests over both HTTP and HTTPS (some implementations support protocols in addition to HTTP and HTTPS, but that functionality is not covered by this specification). Finally, it supports "requests" in a broad sense of the term as it pertains to HTTP; namely all activity involved with HTTP requests or responses for the defined HTTP methods.

The available protocols beyond HTTP and HTTPS are non-standardized, so they depend on the specific environment1 you're using. That is, all compliant XHR implementations must support HTTP and HTTPS, but are not required to support any other specific protocols. That means that you might find that Internet Explorer supports


1Such as, which version of which browser (Safari vs Firefox vs Chrome vs IE vs Opera vs...), or which server-side implementation (V8 vs Rhino vs...)

like image 90
Matt Ball Avatar answered Sep 22 '22 14:09

Matt Ball