(概念)AJAX GET请求与HTTP GET请求:技术上谁是客户端?

时间:2017-05-16 08:37:52

标签: javascript ajax http client-server

因此,当通过浏览器完成正常GET请求时,我认为浏览器是客户端。但是当通过AJAX发出GET请求时,谁是客户?我知道它仍然通过浏览器发生,但我想知道我是否可以更细致地查看它。

你能说浏览器的javascript引擎是AJAX GET请求的客户端和一般的GET请求,那么整个浏览器是客户端吗?我认为只要浏览器的javascript引擎在不同的进程中运行,你就可以这样说。

谁可以对此有所了解?

Wikipedia在AJAX上说:

  

XMLHttpRequest(XHR)是一种以其方法为对象形式的API   在Web浏览器和Web服务器之间传输数据。对象是   由浏览器的JavaScript环境提供。

1 个答案:

答案 0 :(得分:2)

让我们把它放在更广泛的场景中:浏览器/网络服务器通信遵循Client–server model。从服务器的角度来看,客户端是已启动http request的IP地址+ IP端口。

http请求的答案将被发送回原始IP地址+ IP端口,原始进程将对其进行管理。

此过程是您的浏览器。它会接受内部管理的答案。

浏览器可以为多种类型的协议启动客户端请求。通常是 HTTP HTTPS ,还有 FTP FILE ......

XMLHttpRequest只是一个API,在当前浏览器的内部支持......

  

...提供客户端功能,用于在客户端和服务器之间传输数据。

     

[...]它可用于检索任何类型的数据,而不仅仅是XML,它支持 HTTP 以外的协议(包括 FILE 和< EM> FTP )。

有关XMLHttpRequest here的更多信息。

所以,恕我直言浏览器是任何类型请求的客户端( HTTP GET HTTP POST ... ),无论是通过Ajax / XMLHttpRequest启动还是通过直接访问URL。浏览器内部决定如何管理它,在概念上与客户端/服务器模型无关。