大家好,我是web开发和相关技术的新手。我想知道是否每个get请求是一个读操作和post,放和删除是写操作?
是否有可能合并几个写请求并将其作为单个写请求?例如,如果有人喜欢一个帖子,而不是直接写入数据库,是否有可能在与其他类似请求一起写入之前暂时将请求保存在某个地方?如果你喜欢这样,会节省成本吗?
感谢你的问题是非常广泛和开放式的,可能不太适合Stackoverflow。我建议你去Google一下解释HTTP和REST如何工作的教程(例如link)。
HTTP是一种支持Web的协议,本质上涉及(HTTP)客户端(例如您的浏览器)向提供响应的(HTTP)服务器发出(HTTP)请求。
每个HTTP请求都包含一个"动词"(GET
,POST
,PUT
,UPDATE
),并且每个请求都有一个合理定义的意图。例:GET
是我们通常认为的浏览网页。你的浏览器请求例如https://stackoverflow.com/questions/65832394
和Stackoverflow服务器提供呈现为这个页面的HTML。其他动词用于向服务器发送数据。
通常(但不总是)GET
涉及从(例如)POST
涉及向某种形式的"后端"(例如数据库)写入。
HTTP是一个无状态协议。请求和响应之间没有内在的关联。如果您从同一台机器到相同的URL制作例如2个POST
(例如Here's this thing
,And here's another thing
),服务器能够关联这些的唯一方法是如果您要包含某种形式的识别数据(通常以标头的形式),例如{"user":"prehistoricbeast", "message": "First thing"}
,{"user":"prehistoricbeast", "message": "Second thing"}
。然后,服务器将不得不管理一些状态,即来自prehistoricbeast
的2条消息。
即使在一台服务器上这样管理状态,如果您希望向外扩展并添加其他服务器,也会遇到问题。如果服务器#x接收到{"user":"prehistoricbeast", "message": "First thing"}
,服务器#y接收到{"user":"prehistoricbeast", "message": "Another thing"}
,你也需要在这两台机器上共享状态…
在服务器中缓存数据是很常见的(正如@civfan建议的那样),还有许多其他有用的机制,包括排队(发布/订阅)等,以帮助提高效率(吞吐量,成本等),但这些都高度依赖于你的用例,你可用的服务等。