Может ли AJAX использовать протоколы, отличные от HTTP или HTTPS? - PullRequest
5 голосов
/ 10 июня 2011

Интересно, может ли AJAX использовать протоколы, отличные от HTTP или HTTPS.

Ответы [ 2 ]

9 голосов
/ 10 июня 2011

Ajax означает XMLHttpRequest . Так же, как вам не нужно использовать XML с XHR, вам также не нужно использовать HTTP.

Несмотря на название, XMLHttpRequest может использоваться для извлечения данных любого типа, не только XML, и поддерживает протоколы, отличные от HTTP (включая file и ftp).

Из спецификации W3C XMLHttpRequest (выделение добавлено):

Объект XMLHttpRequest реализует интерфейс, предоставляемый механизмом сценариев, который позволяет сценариям выполнять функции клиента HTTP, такие как отправка данных формы или загрузка данных с сервера. Это ECMAScript HTTP API.

Имя объекта - XMLHttpRequest для совместимости с Интернетом, хотя каждый компонент этого имени может вводить в заблуждение. Во-первых, объект поддерживает любой текстовый формат, включая XML. Во-вторых, его можно использовать для отправки запросов как по HTTP, так и по HTTPS ( некоторые реализации поддерживают протоколы в дополнение к HTTP и HTTPS, но эта функциональность не рассматривается в этой спецификации ). Наконец, он поддерживает «запросы» в широком смысле этого термина, поскольку он относится к HTTP; а именно вся деятельность, связанная с HTTP-запросами или ответами для определенных HTTP-методов.

Доступные протоколы, кроме HTTP и HTTPS, не стандартизированы, поэтому они зависят от конкретной среды 1 , которую вы используете. То есть все совместимые реализации XHR должны поддерживать HTTP и HTTPS, но не требуется для поддержки любых других конкретных протоколов. Это означает, что вы можете обнаружить, что Internet Explorer поддерживает


1 Например, какая версия какого браузера (Safari против Firefox против Chrome против IE против Opera против ...) или какой сервер- сторонняя реализация (V8 против Rhino против ...)

0 голосов
/ 24 сентября 2013

XMLHttpRequest (XHR) - это API, доступный для языков сценариев веб-браузера, например JavaScript Он используется для отправки запросов HTTP или HTTPS на веб-сервер и загрузки данных ответа сервера обратно в сценарий.

из Википедии

...