【问题标题】:(Conceptual) AJAX GET Request vs HTTP GET Request: who is technically the client?(概念)AJAX GET 请求与 HTTP GET 请求:从技术上讲,谁是客户端?
【发布时间】:2017-05-16 08:37:51
【问题描述】:

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

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

谁能解释一下?

Wikipedia 在 AJAX 上说:

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

【问题讨论】:

  • 这只是同样的事情。基本上两个词的区别是正常请求刷新页面而不是ajax
  • 可以说很多话。但是浏览器发出了请求。

标签: javascript ajax http client-server


【解决方案1】:

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

http请求的应答会被发回源IP地址+IP端口,由源进程管理。

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

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

XMLHttpRequest“只是”一个 API,由当前浏览器内部支持...

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

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

更多关于XMLHttpRequesthere

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

【讨论】:

  • 好吧,这似乎是合理的。为什么我的开发工具说这是一个 xhr 请求而不是 GET 请求?我知道 xhr 请求不是 HTTP 动词,但我的 Chrome 开发工具确实让我知道它们是。
  • @MelvinR​​oest 我的浏览器说这是一个 XHR 请求,但仍然告诉我什么类型。
猜你喜欢
  • 2020-06-19
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
  • 2011-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多