首页 > 解决方案 > URL 和 HTTP 协议

问题描述

我目前正在学习如何通过 URL 将消息传输到主机服务器。到目前为止,我学到的是 URL 是如何组成的:http://example.com:80/latest/example.jpg?d=400x400在通过端口 80 从主机请求的维度中为我提供图像“example.jpg”(可以省略,因为 http 始终使用端口 80)。对此的请求消息如下所示 GET latest/example.jpg?d=400x400 HTTP/1.1:响应消息如下所示:HTTP/1.1 200 OK.

所以我很清楚如何从主机获取一些资源。但是其他 HTTP 方法(如 PUT、POST 或 DELETE)是怎么回事?我不明白 HTTP 方法在 URL 中的哪个位置供主机读取。如何告诉主机 PUT 而不是 GET?

提前致谢。

标签: httpurlwebnetworkingdistributed-computing

解决方案


似乎对 url 和相应的请求有一个小的误解。

urlhttp://example.com:80/latest/example.jpg?d=400x400由5部分组成:

  • 使用的协议(在您的情况下为 http)
  • 使用 fqdn - 完全限定域名 - (在您的情况下为 example.com)
  • fqdn 上的端口-在您的情况下为 80-在您的情况下是不必要的,因为您的浏览器默认为 http 的 80
  • 您请求的资源,在您的情况下是 /latest/example.jpg
  • 您请求的 GET 参数,用 ? 表示,在您的情况下,参数 d 的值为 400x400

请注意,请求消息仅看起来像您概述的那样,因为您的浏览器默认使用 HTTP 的 GET 方法。正如您所说的,有多种 HTTP 方法,例如 PUT、POST、PATCH、DELETE 等。

HTTP-Method 在 HTTP Header 中说明,因此由调用 HTTP-Method 的请求决定。

对于“众所周知的”互联网冲浪,您输入的 url 将始终导致 GET 请求。对于其他 HTTP 方法,取决于应用程序(例如您的网站或使用 HTTP 请求的普通软件)来启用使用。例如,html 允许使用<form>标签,您可以在其中指定 http 方法,例如,您可以说使用 POST。

总结一下:您的网址没有指定 HTTP 方法。

浏览器默认使用 GET,但最终取决于您的应用程序(以及其背后的逻辑)使用哪种 HTTP 方法。


推荐阅读