问题标签 [httpserver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java,如何在 JAR 包中读取和存储文件
我正在尝试使用 Java 构建一个简单的 HTTP 服务器,使用
使用网络浏览器连接时,我只是从字符串中写入输出(HTTP 标头 + html 代码)
并且浏览器正确显示它。
现在我的问题是,我想构建一个完整的网页(html、javascript、css、图像)并将这些文件放入 Java 包 (JAR) 文件中,当然,这些文件设计为以后不可修改JAR 可以使用了。这是问题:
如何做到这一点?将文件存储在 JAR 中,然后在建立连接时输出它们。
如何输出图像文件(非文本)就像输出
String
一样out.write()
?
谢谢,任何示例或代码表示赞赏。
multithreading - HTTP 服务器中“每个连接一个线程”的优势是什么?
如果我正在编写 HTTP 服务器,为什么要考虑在自己的线程中处理每个 HTTP 连接?
我读过很多关于事件驱动的 HTTP 服务器比线程驱动的服务器更快、更具可扩展性的论点。(例如,请参阅Nginx上的 Ars Technica )。然而,世界上最受欢迎的服务器 Apache 是线程驱动的。为什么?有什么优势?
python - 通过 HTTP 提供日志
这是我想要实现的目标:我有一些 Linux 服务器部署了我的 web 应用程序。目前,我的开发团队访问 Web 应用程序,运行他们的测试用例,然后通过 SSH 连接到我的 Linux 机器以查看或获取日志。我不希望他们能够通过 SSH/FTP 进入任何服务器,我正在寻找一种解决方案,仅通过 HTTP 和 HTTP 将日志发送给他们(没有 Linux 解决方案,如监狱等)。
由于服务器已经很慢并且不能真正处理更多的负载,我决定使用 Python 的 SimpleHTTPServer。对于每个有他们需要的日志的目录,我基本上创建一个 index.html 文件,该文件只有一个到该日志文件的下载链接,然后我在该目录中启动一个 SimpleHTTPServer。我需要在每个盒子上启动 3 个 SimpleHTTPServer,因为它们需要 3 个日志。
这工作正常,除了不时用于访问有时大约 700MB 的日志之一的http://serverurl:port url 停止响应(在谷歌浏览器中它说:没有收到数据,在 IE 和 FF 中它只是显示空白页)。此时,该端口上的 SimpleHTTPServer 仍处于启动状态并显示在正在运行的进程中。
到目前为止,我只是通过杀死然后在该端口上启动 SimpleHTTPServer 来解决这个问题,但我正在寻找一个永久的解决方案。奇怪的是,这只发生在其中一个日志上,我已经厌倦了切换端口号,因为我认为可能存在冲突或其他原因。
任何人都可以建议一个使用 HTTP 的解决方案,它与 SimpleHTTPServer 一样轻量级并且不需要这么多的维护。
apache - 根据 apache http 服务器中的请求标头验证传入请求
我们有一个在 weblogic 应用服务器上运行的 web 应用程序(JQuery 和 Spring)。应用服务器前面有一个 apache http 服务器。所有传入的请求都将通过 Web 服务器到达应用服务器。
现在我们有一个要求,我们必须验证传入的 http 请求标头中的值,如果存在,则必须将请求发送到应用服务器。如果不是,我们会阻止请求,然后向最终用户显示静态错误页面。
我想知道我们是否可以在 apache http 服务器中实现这个逻辑。请指教。
javascript - 奇怪的 JQuery 错误“代码 501,消息不受支持的方法选项”
我正在学习 JQuery Get 方法。我启动了一个 Python HTTP 服务器:
(只需输入命令“ Python -m SimpleHTTPServer ”)。
只需在我的网络浏览器上访问“http://localhost:80”即可测试此网络服务器。但是,当我编写这个非常简单的 javascript 来访问我的网络服务器时。我收到一条错误消息:
“代码 501,消息不受支持的方法('OPTIONS')”
我使用假设跨域请求 JQuery 的 jquery.xdomainajax.js 库。
这是我的javascript代码:
实际上,如果我将您更改为任何其他网址,例如“http://www.google.ca”。它工作得很好。但我不知道为什么它不适用于基本的 Python HTTP 服务器。谁能帮我?
apache - Apache http 服务器每个虚拟主机一个实例
我有兴趣根据下一个参数使用 apache http 服务器:
- 在单个端口上运行侦听的单个服务器上
- 配置了多个虚拟主机,每个域一个
- 将每个虚拟主机作为实例运行在 80 端口中侦听
- 能够重新加载一个域配置而无需重新启动其余配置。
我对内存消耗有疑问,如果有,我应该如何改进它。
只要只有一个 http 服务器在运行,我认为这不会是内存问题(如果我错了,请纠正我)?
或者可能是因为每个实例都消耗独立的内存?
应该与在主 apache 配置文件上运行所有 VirtuallHosts 的内存消耗相同吗?
非常感谢,我主要想为每个域运行一个实例,因为我希望能够在需要时重新启动每个 VirtualHost 配置,而不必重新启动其他配置。
谢谢
java - 如何让 HttpServer 识别 Java 中的特殊字符?
我想用我的 Java HttpServer 进行一些 SQL 查询,但似乎 HttpServer 无法识别我提交到浏览器的链接中的特殊字符:
我总是收到这样的回复:
这是我的服务器的代码:
我怎样才能解决这个问题?
out-of-memory - Netty HTTP-server,大文件上传,OutOfMemoryError
首先对不起我歪曲的英语:)
我在编写发送/接收大文件(~2Gb)的 Netty http 服务器时遇到了一些问题。我将非常感谢任何人的帮助或解释。
我的客户端应用程序(网络浏览器)通过 XMLHttpRequest 发送文件,如下所示:
服务器端是:
类 WebSocketServer:
类 HttpRequestServerHandler:
当我发送中等大小的文件时,一切都很好。问题在于大文件(> 300Mb)。一段时间后出现处理异常:
java.lang.OutOfMemoryError:org.jboss 的 org.jboss.netty.buffer.BigEndianHeapChannelBuffer.(BigEndianHeapChannelBuffer.java:39) 的 org.jboss.netty.buffer.HeapChannelBuffer.(HeapChannelBuffer.java:47) 的 Java 堆空间。 netty.buffer.ChannelBuffers.buffer(ChannelBuffers.java:139) at org.jboss.netty.buffer.HeapChannelBufferFactory.getBuffer(HeapChannelBufferFactory.java:73) at org.jboss.netty.buffer.DynamicChannelBuffer.ensureWritableBytes(DynamicChannelBuffer.java: 84) 在 org.jboss.netty.buffer.AbstractChannelBuffer.writeBytes(AbstractChannelBuffer.java:457) 在 org.jboss.netty.buffer.AbstractChannelBuffer 的 org.jboss.netty.buffer.DynamicChannelBuffer.writeBytes(DynamicChannelBuffer.java:239) .writeBytes(AbstractChannelBuffer.java:450) 在 org.jboss.netty.handler.codec.http.HttpChunkAggregator。messageReceived(HttpChunkAggregator.java:140) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:302) at org.jboss.netty.handler.codec.replay.ReplayingDecoder.unfoldAndFireMessageReceived(ReplayingDecoder.java:522) org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:506) org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:443) org.jboss .netty.channel.Channels.fireMessageReceived(Channels.java:274) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261) at org.jboss.netty.channel.socket.nio.NioWorker.read (NioWorker.java:351)在 org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived (ReplayingDecoder.callDecode(ReplayingDecoder.java:506) java:443) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261) at org.jboss.netty.channel .socket.nio.NioWorker.read(NioWorker.java:351)org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:506) 的展开AndFireMessageReceived(ReplayingDecoder.java:522) org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder. java:443) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261) at org.jboss.netty.channel .socket.nio.NioWorker.read(NioWorker.java:351)fireMessageReceived(Channels.java:261) at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:351)fireMessageReceived(Channels.java:261) at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:351)
它甚至没有到达我的 messageReceived 处理程序。我可以假设一些内部 ChannelBuffer 溢出。我试图增加 HttpChunkAggregator(1024*1024*1024) 参数。但是,它没有帮助。我只看到一种解决方案 - 在客户端拆分文件(使用 html5),发送这些块,然后将它们粘贴到服务器上。但它似乎相当复杂。有没有更简单的方法来修复它(在 Netty 范围内)?
谢谢!最好的祝福。
python - python http 网络服务器
我在本地网络上为我的家人创建了一个简单的 http 服务器,当我添加一个 html 文件和 png 图片并尝试查看 HTML 文件时,我的图像无法加载。
它说:
“图像“http:// . . . :255/header.png” 无法显示,因为它包含错误。”
这是我的一些代码
除了 png 和 jpeg 部分之外,它们都可以工作。我自己制作的 BM 脚本,和 esp 一样,所以这没什么
apache - 如何将 IP 范围重定向到不同的地址?
我想将访问者从定义的 IP 范围重定向到不同的位置。
例如,我希望将此 IP 范围 85.204.0.0/16 中的客户端重定向到 clientsA.html,并将此 IP 范围 195.178.124.0/23 中的客户端重定向到 clientsB.html
我想 .htaccess 参与其中,但我不确定我应该做什么。请帮我。