我目前正在 linux 上编写一个服务器 http,它应该服务于 GET 和 POST 查询。我的问题是:
- 我应该什么时候关闭与某个客户端的连接?发送响应后立即?还是我应该等待套接字以获取另一个查询服务?
- 如何实现 POST 查询,以便服务器尽可能保持最通用?我应该使用 CGI 吗?如果是 - 如何?
我希望我足够具体, 谢谢!
最佳答案
在实时 HTTP 实现中(我说的是 HTTP GET), header 中曾经有一个部分表示持久连接。您也可以在 HTTP 规范中找到它。如果 persistence 设置为 true,服务器将不会关闭连接直到超时。这是为了在客户端可能需要与当前查询相关/相关的另一个资源的情况下加快浏览速度。例如,您可能请求一个网页,而该网页可能包含对图像或其他资源的引用。
您可以在处理 PUT/POST 请求后立即关闭连接。
我希望此链接 ( https://en.wikipedia.org/wiki/HTTP_persistent_connection) 能让您对此有所了解。大多数 HTTP 连接被认为是持久的(注意:短时间,比如直到超时)以避免如上所述的延迟,除非它是外部指定的。
关于c - SOCK_STREAM 上的 Http 服务器 - 何时结束连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44461869/