http - 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?
提前致谢。
解决方案
似乎对 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 方法。
推荐阅读
- python - 包含值的数据框不适用于“np.where”,并且存在 valueerror
- javascript - 反射器未定义 - three.js
- mysql - SQL“插入触发器后”抱怨字段列表中的未知列“currentId”,即游标
- javascript - 无论如何将API调用的json结果分配给javascript中的变量
- c# - Kendo MVC Grid 可编辑级联下拉菜单显示“未定义”
- mongodb - MongoDB 上的 Strapi:非结构化数据是否有内容类型?
- html - 如何将 JSON-LD 面包屑模式添加到我的网站导航以用于 SEO 目的
- python - Python:如何从与给定字符串匹配的列表对象中获取实际字符串?
- python-3.x - 重新格式化pycharm中变量的文件剪切
- tensorflow - Tensorflow Lite 推理内存分配