Http-Server 如何创建请求标头和响应标头

Posted

技术标签:

【中文标题】Http-Server 如何创建请求标头和响应标头【英文标题】:Http-Server How to Create Request-Headers and response-Headers 【发布时间】:2011-05-06 15:26:46 【问题描述】:

求救求救求救!!! 我在 java 中创建了一个原始 HttpServer,它侦听端口 80 并使用 Get 方法打开文件等(127.0.0.1/index.html)。我想从 HTTP/1.1 (RFC 2616) 协议创建请求标头(接受、接受语言、用户代理)和响应标头(内容长度和缓存控制)。 你能帮我怎么做吗...你会救我的命!!!!!!!!! 谢谢!

【问题讨论】:

这是家庭作业吗? 我不明白 - 如果你已经编写了自己的服务器,它应该像将适当的字符串写入输出流然后换行一样简单 - 这就是标题的全部内容,@987654321 @ 对遵循它们在响应中出现的位置和方式的某些限制。 是的,如果你真的阅读了 RFC,你就会明白这有多简单。 只有老手才能阅读文档,伙计! 【参考方案1】:

标题只是初始 GET/POST/* 操作之后的行。最后一个标题与内容用空行分隔。因此,您需要做的所有事情(在客户端和服务器端)就是在内容之前的请求/响应中写几行。

HTTP/1.0 200 OK
Date: Fri, 31 Dec 1999 23:59:59 GMT
Content-Type: text/html
Content-Length: 1354

<html>
<body>
...
(more file contents)

附: Java 有一个内置的 HTTP 服务器,你知道吗?

com.sun.net.HttpServer:

HttpServer httpServer = HttpServer.create(new InetSocketAddress(port), 5);
httpServer.createContext("/", new MyRequestHandler());
httpServer.setExecutor(Executors.newCachedThreadPool());
httpServer.start();

【讨论】:

以上是关于Http-Server 如何创建请求标头和响应标头的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 python 请求模块创建自定义标头

与响应标头相比,请求标头中的 Cache-Control 效果如何

如何将标头从请求传递到集成响应?

使用 Moya 获取响应标头

WCF - 如何在服务响应中包含/添加 WS-Addressing“TO”标头

获取浏览器创建的请求的响应标头