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

(Conceptual) AJAX GET Request vs HTTP GET Request: who is technically the client?

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

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

谁能解释一下?

Wikipedia 在 AJAX 上说:

XMLHttpRequest (XHR) is an API in the form of an object whose methods transfer data between a web browser and a web server. The object is provided by the browser's JavaScript environment.

让我们把它放在更广泛的场景中:Browser/web-server 通信遵循 Client–server model. From the server point-of-view, the client is an IP address+IP port that has started a http request

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

这个进程就是你的浏览器。它将接受内部管理的答案。

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

XMLHttpRequest 是 'just' 一个 API,当前浏览器内部支持...

...provides client functionality for transferring data between a client and a server.

[...] it can can be used to retrieve any type of data, not just XML, and it supports protocols other than HTTP (including FILE and FTP).

更多关于 XMLHttpRequest here

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