问题标签 [http-1.0]
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.
http - 当客户端在 websocket 打开握手中指定 HTTP/1.0 时返回的最合适的 HTTP 状态代码是什么?
根据 WebSocket RFC ( RFC6455#section-4.2.1 ):
如果服务器在读取握手时发现客户端未发送与以下描述匹配的握手 [...],则服务器必须停止处理客户端的握手并返回带有适当错误代码的 HTTP 响应(例如400 错误请求)。
- 一个 HTTP/1.1 或更高版本的 GET 请求,包括一个“Request-URI”[RFC2616],应该解释为第 3 节中定义的 /resource name/(或包含 /resource name/ 的绝对 HTTP/HTTPS URI)。
[ETC...]
当客户端的握手消息改为指定HTTP/1.0
(或者可能是更低的版本号?)时,我不确定在HTTP/1.1 400 \r\n\r\n
给定其定义(RFC7231#section-6.5.1)的情况下响应是否合适:
400 (Bad Request) 状态码表示服务器不能或不会处理请求,因为某些东西被认为是客户端错误(例如,格式错误的请求语法、无效的请求消息帧或欺骗性请求路由)。
我想HTTP版本号是否太低是否被认为是客户端错误取决于如何解释客户端握手消息:
任何一个...
- 客户端握手消息是一个普通的 HTTP1.1 消息(如果它包含一组特定的 HTTP 标头,可能会导致未来升级到 WebSocket)。
...或者...
- 客户端握手消息实际上不是 HTTP1.1 消息,而是实际上是 WebSocket 标准的一部分并且只是伪装成 HTTP1.1 消息的消息。
如果是后者,状态码 400 是有意义的,因为客户端明显违反了 WebSocket 标准。
如果是前者,则状态码 400 没有意义,因为该消息作为 HTTP 消息是有效的;并且状态码 505 可能更可取:(RFC7231#section-6.6.6)
505(不支持 HTTP 版本)状态码表示服务器不支持或拒绝支持请求消息中使用的 HTTP 主要版本。服务器表示它无法或不愿意使用与客户端相同的主要版本完成请求,如 [RFC7230] 的第 2.6 节所述,除了此错误消息。服务器应该为 505 响应生成一个表示,描述为什么不支持该版本以及该服务器支持哪些其他协议。
再说一次,我不喜欢返回 5XX 类状态代码的想法,因为它或多或少表明服务器因抛出错误而出错......
编辑:正如我在下面的评论中提到的,大部分歧义可能源于我根本不检查客户端是否打算升级到 WebSocket。
java - Java Socket 编程 - HTTP 1.1 出现 301 错误
我刚开始用 Java 学习套接字编程,我已经遇到了一个不寻常的行为。这是代码片段
这将为我提供带有 HTTP 1.1 和 1.0 的“301 永久移动”代码。如果我取消注释请求和主机名之间的空行
它会给我HTTP 1.1 的“HTTP/1.1 400 Bad Request”和 HTTP 1.0 的“HTTP/1.1 200 OK”。
为什么会有这样的行为?发生这种情况是因为我们有 HTTP 1.0 中的请求而响应是 HTTP 1.1 中的吗?
谢谢。
http - 如何知道服务器是否支持 HTTP 1.0
我需要知道服务器是否支持 HTTP 1.0。我通过 TCP 套接字发送此消息:
问题是有时我会收到 HTTP 1.0 响应,有时会收到 HTTP 1.1 响应。我应该如何解释这些回应?
谢谢!
nginx - 为什么 nginx/nginx 上游之间使用 http/1.0?
我有 3 个服务器:A(nginx)-->B(nginx)-->C(nodejs),
当我访问 A 或 B 时,chrome 默认使用 http/1.1+keepalive。
我没有设置“proxy_http_version 1.1;” 和 proxy_set_header 连接“”;
但是在A和B之间,NGINX默认使用http/1.0。就是这样:
客户端--> nginxA(上游到b) --> nginxB(上游到c) --> C(nodejs)
http/1.1 --> http/1.0 --> http/1.1 --> nodejs
我的问题是:为什么nginx默认使用http/1.1作为上游,在nginx和nginx之间,上游使用http/1.0?
谢谢。
elixir - 使用 HTTPoison 的 HTTP 1.0 请求
如何使用 HTTPoison 发出 HTTP/1.0 请求?我不知道它使用的是哪个版本,但我假设它默认不是 1.0。
我正在与一些名为 MoneyWorks 的会计软件集成,他们建议尽可能使用 HTTP/1.0 以避免 2 秒超时延迟。
我在 HTTPoison 文档中没有看到任何关于此的内容,所以我去了 Hackney 文档,因为它是基于此构建的。那里也没有看到任何东西。
apache - 如何在 Apache 中禁用 HTTP 1.0 协议?
HTTP 1.0 存在与会话劫持相关的安全漏洞。我想在我的网络服务器上禁用它。
java - 在 java 1.8 中读取套接字的输入流时出错
使用以下代码读取输入流时会发生错误。我使用以下代码:
服务器端可以很好地与其他应用程序配合使用。此代码还与服务器建立连接并获取一些日期,但过了一会儿它在 nis.read 上相当。
代码是用java 1.8 for android studio编写的。
有没有人有想法从服务器获取所有信息并读取所有信息,以便可以在应用程序中使用。
更新 在while循环中使用以下行给出错误:
更新 2 给定的错误是: System.err: java.net.SocketException: Connection reset
http - 这条线在 rfc2068 中是什么意思
此外,
自称为“HTTP/1.0”的未完全实现的应用程序激增,需要
更改协议版本,以便两个通信应用程序
确定彼此的真实能力。
java - SOAP 响应因大负载而被截断
我们有一个遗产SOAP web service
,使用Apache Axis 1
. 在客户端环境中,响应数据有时会在某些 API 调用中被截断,从而导致错误。但是当使用 SOAP UI 客户端进行测试时,它会按预期返回完整数据。此行为无法在我们的开发环境中本地复制,并且仅发生在客户端办公室。他们确实有前端代理和东西来路由请求。
我们仍在使用HTTP 1.0
. 这会导致大负载出现任何问题吗?升级到 需要多少努力HTTP 1.1
?这将是一个简单的标题升级说明HTTP/1.1
吗?
我们已经在使用utf-8
请求和响应对数据进行编码。
示例 SOAP 请求:
]
有小费吗?
http - 任何命令行 http1.0 兼容客户端自动编码 URL 中的非 ascii 字符?
我需要测试一些需要向后兼容的场景。
我试过了curl
,但非 ascii url 必须手动转义。
wget
对 URL 进行编码,但在我对 wget 1.20.3 的测试中,我只能发送 HTTP/1.1 请求。该手册没有提到任何将其设置回 HTTP/1.0 的选项
我可以使用其他任何工具吗?