HTTP way to explore https:https://cdn.v2ex.com/navatar/7f1d/e29e/135_normal.png?m=1643850486 https:https://cdn.v2ex.com/navatar/7f1d/e29e/135_large.png?m=1643850486 2025-09-08T02:48:28Z Copyright © 2010-2018, V2EX safari 无法打开网站,但 chrome 可以 tag:www.v2ex.com,2025-09-08:/t/1157722 2025-09-08T02:48:28Z 2025-09-08T02:48:28Z zhoufan47 member/zhoufan47 最近搭建了一个个人网站,记录一些搭建 NAS 和 DOCKER 的事情 正好从阿里云薅了个 99 一年的 ECS 主机,搭配之前在腾讯云注册的域名 主机上使用了 1panel 方便管理,用 docker 运行了 halo,并且使用 1panel 申请了*.域名的 ssl 证书。

halo 的网络模式是桥接模式,通过 openresty 反向代理到外网,然后有 openresty 提供 ssl 服务。

之后就遇到一个特别诡异的问题 mac 、pc 的 chrome 系、firefox 浏览器访问网站都没问题

但是 ios 和 mac 平台的 safari 浏览器打开网站,基本第一次都是提示 connection was lost,必须刷新个几次才能打开网站,之后只要不关掉标签页也能正常访问。 有没有朋友遇到过此类的问题?

网站网址:www.bangzonghao.top

]]> 大家一般如何保证服务器 set-cookie 按序保存的 tag:www.v2ex.com,2024-12-13:/t/1097358 2024-12-13T08:56:23Z 2024-12-13T09:37:21Z zhwguest member/zhwguest 假设服务器会在请求响应中更新 set cookie 。假设服务器 set cookie 的顺序很重要。

如果多个请求,服务器(内部会串行化),所以设置的 Cookie 有新旧之分。新 Set 的 Cookie 可以覆盖旧 Cookie ,但绝对不允许旧 Cookie 覆盖新 Cookie 。

但是如果不是串行化发出请求,那么即使先发出 A ,也无法保证 A 的响应(更新 cookie )发生在 B 响应之前。就是说服务器设置的新 Cookie 可能被旧的响应覆盖。

一般怎么解决这个问题呢?

不知道有没有比较 Best Practice 的做法。如果 HttpOnly ,那么 web 端似乎手段更加有限?

]]>
明御 WEB 应用防火墙 如何找回密码? tag:www.v2ex.com,2024-08-06:/t/1062952 2024-08-06T07:15:18Z 2024-08-06T11:29:56Z paranoiagu member/paranoiagu 明御 WEB 应用防火墙,装在一个 centos 上,知道操作系统的 root 密码,但是不知道 waf 的管理员账号密码。 请问如何找回密码?或者重设密码?

另外,有人知道这 waf 的授权绑定硬件吗?现在需要迁移虚拟机,迁移后需要重新授权吗?

]]>
直连模式下 https 网站打不开 tag:www.v2ex.com,2024-04-24:/t/1035155 2024-04-24T02:08:13Z 2024-04-24T03:17:12Z 7inFen member/7inFen 使用的 acme 自签名证书( ZeroSSL )

  1. 直连模式下,https 网站打不开,http 正常打开
  2. 代理模式下,https 和 http 均能正常打开

手动更新证书后问题依然存在

昨晚凌晨正常使用,今早起来突然出现这个问题了

请问会是什么原因造成的?

]]>
关于在其他国家访问中国国内数据出现严重丢包问题 tag:www.v2ex.com,2024-02-18:/t/1016108 2024-02-18T01:32:47Z 2024-03-28T04:51:39Z fenglirookie member/fenglirookie 我在中国的腾讯服务器上有一个 java 服务,然后我在 vercel 上部署了一个 nodejs 服务,我在 vercel 上使用 nodejs 的 fetch 访问腾讯服务器上的服务时,这个服务之间的数据格式是文件流数据就会出现很严重的丢包问题,这是为什么 有 V 友知道吗?

]]>
求教同样的 url 参数头部 cookies, scrapy 请求返回验证码, requests 直接请求就正常,代码如下 tag:www.v2ex.com,2024-01-05:/t/1006225 2024-01-05T08:47:11Z 2024-01-05T08:50:31Z hahahalololo member/hahahalololo url='xxxxxxxxxxxxxxx' yield scrapy.Request( url=url, cookies=self.cookies, headers=self.headers, meta={ 'download_timeout': 60 }, callback=self.save, ) rs = requests.get(url, headers=self.headers, cookies=self.cookies, timeout=60)

这可能是什么原因造成的呢?找了一圈也没发现原因。COOKIES_ENABLED 设置成 True 的

]]>
什么工具适合方便的发送原始 HTTP 包? tag:www.v2ex.com,2024-01-02:/t/1005324 2024-01-02T17:19:45Z 2024-01-02T22:02:29Z chackchackGO member/chackchackGO 例如

POST /jars/upload HTTP/1.1 Host: localhost:8081 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Connection: close Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryoZ8meKnrrso89R6Y Content-Length: 187 ------WebKitFormBoundaryoZ8meKnrrso89R6Y Content-Disposition: form-data; name="jarfile"; filename="../../../../../../tmp/success" success ------WebKitFormBoundaryoZ8meKnrrso89R6Y-- 

这样一段 HTTP 包,无论用 postman ,postwoman, curl 之类的工具都需要自行修改这个字符串以符合他们的使用格式, 有些不方便。

]]>
冷知识:.ml 域名可以注册了 tag:www.v2ex.com,2023-12-02:/t/997146 2023-12-02T12:15:27Z 2023-12-02T15:08:54Z HeloV member/HeloV 注册地址在 point.ml ,支付方式选 master card 之后,可以用银行卡支付( visa 卡是可以的),9 欧一年。

很多四个字母的域名没有注册

现在可以找回之前 .ml 的免费域名了。

]]>
TLS 回顾 tag:www.v2ex.com,2023-11-28:/t/995871 2023-11-28T03:10:29Z 2023-11-28T03:25:30Z GopherDaily member/GopherDaily Secure Sockets Layer(SSL) 是网景(Netscape) 在 1995 年提出的一种安全加密协议, 包括 1.0, 2.0 和 3.0 三个版本.

Transport Layer Security(TLS) 是由 IETF 主导的, 对 SSL 的更新. TLS 的初始版本和 SSL 3.0 基本相同. TLS 1.2/1.3 是当前的主流版本, 1.3 相对 1.2 在安全和性能上都有明显的提高.

Encrypt, Digest and Sign

数据经过加密后(Encrypt), 仅拥有对应密钥的人, 经过解密后可以看到数据的内容. 密钥的形式分为对称密钥和非对称密钥, 非对称密钥下, 常由第三方用公钥对数据进行加密, 随后仅私钥的持有者可以解密对应数据.

摘要(Digest)是指将不定长的数据映射到固定长度, 如 MD5 就会产生 128 比特的字符串. 数据发布者主动公布摘要后, 数据使用者可以按相同规则计算数据的摘要, 通过比对, 校验数据的完整性, 避免使用的数据被篡改.

签名(Sign)是指使用非对称密钥中的私钥计算数据对应签名, 使用者可以使用对应公钥验证数据和签名的关联性, 进而确保数据是由公钥对应方发布或认证的.

TLS 1.2

基于 RSA 交换密钥的 TLS 握手流程如下, 常见于 TLS 1.2:

客户端确认服务端身份依赖于 Certificate Authority (CA), 即证书颁发机构. 其工作机制可以简单的理解为:

基于 RSA 的密钥交换中, 由客户端生成 pre-master secret 后, 使用服务端的公钥加密后传输给服务端. 理论上, 仅服务端使用严密保护的私钥可以解密这部分数据获取到 pre-master secret. 随后, 客户端和服务端用 pre-master secret, 客户端随机数和服务端随机数生成相同的密钥, 用于后续数据的对称加解密.

TLS 1.3 相较于 TLS 1.2 在安全性和握手效率上都要较大的提高, 具体可以参考 为什么要使用 TLS 1.3 ?.

SNI

Server Name Indication (SNI) 是 TLS 的一个扩展, 允许客户端在 ClientHello 中指定想要连接的主机名. SNI 主要用于同一 IP 的服务器承载多个主机名的场景.

诸如 Istio 这样的 Mesh 方案, 会大量使用 SNI 来做路由.

Source: https://github.com/j2gg0s/j2gg0s/blob/main/_posts/2023-11-27-TLS%20%E5%9B%9E%E9%A1%BE.md

]]>
想监测某航空余票 tag:www.v2ex.com,2023-11-10:/t/990658 2023-11-10T05:49:18Z 2023-11-10T06:45:12Z MrdotX member/MrdotX 如题,通过用自己的账号,请求某一航班的余票后把 http 请求全部克隆,然后用脚本每隔几秒发送请求监控余票情况,但,发现该请求每隔半小时就失效了,然后用自己的手机重新发请求获取到新的 Cookie 塞到脚本的请求中,又可以再次进行刷票监控。

所以,想请问下在座的巨佬,目前的半小时是 Cookie 引起的吗? 我不太懂 Cookie 的规则,有没有方法可以延时该请求? 能超越半小时的限制?

]]>
http 代理,如果不支持 connect 方法,有没有办法访问 https 的网站? tag:www.v2ex.com,2023-10-17:/t/982662 2023-10-17T02:30:10Z 2023-10-17T05:49:00Z zkwang member/zkwang 有一个古老的 http-proxy 软件,不支持 connect 方法,所以只能访问 http 网站,不能访问 https 网站。 有没有什么办法让它能访问 https 的网站?

]]>
关于 tomcat 配置国密 https 后出现的问题求助 tag:www.v2ex.com,2023-10-11:/t/981062 2023-10-11T09:56:29Z 2023-10-11T15:20:02Z loveaeen member/loveaeen 项目环境

项目运行环境

今天采用 gmssl 签发了一个测试证书 sm2/rsa 双 https 证书。 然后为 tomcat8 与 jdk1.8 分别增加了国密解析的 jar 包。

出现问题

项目在 http 下正常运行,但是 https 时出现访问静态文件时却出现了 500 错误,tomcat 报错 SSLPeerUnverifiedException: peer not authenticated

诡异的是却有一小部分静态文件访问正常(已关闭浏览器缓存)

求助

有哪位大兄弟有做过这方面的工作吗,求助!

]]>
一个 udp 的疑问 tag:www.v2ex.com,2023-10-10:/t/980807 2023-10-10T15:55:07Z 2023-10-10T23:56:56Z bfjm member/bfjm tradingview 上面策略的买入 卖出信号怎样发送给服务器,现在 webhook URL 现在收费 有什么办法可以解决的 tag:www.v2ex.com,2023-10-01:/t/978448 2023-10-01T06:57:55Z 2023-10-01T12:39:24Z ccclo member/ccclo 选择重传协议疑问 tag:www.v2ex.com,2023-09-29:/t/978172 2023-09-29T09:59:35Z 2023-10-04T11:29:24Z n2l member/n2l 在选择重传协议中,如果发送接收窗口的尺寸都是 4 ,发送方发送的 0-3 号数据都被接收方正确接受,接收方也发送了 0-3 号确认分组,但是 2 号确认分组在传输过程中丢失了,只有 0 ,1 ,3 号确认分组正确被发送方收到,那后续的过程是怎样的?(不要 chatgpt 的答案,因为我试过,引申的疑问来自于 https://b23.tv/fRUMaRO 的 6 分钟左右,视频里说的是 2 号数据分组丢失,我的引申问题背景是 2 号确认分组丢失)

]]>
有个用于测试 HTTPS 链接各阶段耗时的命令行工具想不起来叫啥了 tag:www.v2ex.com,2023-09-29:/t/978154 2023-09-29T07:23:37Z 2023-09-29T08:28:58Z isbase member/isbase 用法类似 curl https://example.com

它可以输出请求到响应各阶段的耗时,包括 DNS 解析、TLS 握手、等信息

]]>
求各位高手推荐一个 postman 的 mac 下的替代。。 tag:www.v2ex.com,2023-09-28:/t/978079 2023-09-28T16:25:09Z 2023-09-29T11:30:17Z qweruiop member/qweruiop 不知不觉 postman 里面已经积累了 2000 多个 requests 了。。。现在在 m1 下面巨卡。。。感觉 electron 的锅。。。

因为做企业开发,不知道有没有用原生写的。。。要求:

1 ,最好是开源的。 2 ,不要国人开发的。。。(公司规定)

不知道各位小伙伴都在用啥。。。

]]>
有现成的 Http 请求批量发送和管理工具吗? tag:www.v2ex.com,2023-09-22:/t/976340 2023-09-22T14:15:48Z 2023-09-22T14:17:03Z KingFong member/KingFong 迫于公司业务有几十台运行同样程序的服务器在管理,这些服务器上支持通过 http 接口调用执行一些命令。

想找一个开源的工具来实现这样的管理,可以添加机器的 IP ,可以编辑 http 请求组,然后发起任务批量往这些 IP 上发送 http 请求,并记录结果或者重试。

总感觉应该有现成的轮子能实现。

]]>
报文主体和实体主体的差异 tag:www.v2ex.com,2023-05-04:/t/937369 2023-05-04T13:36:23Z 2023-05-04T17:26:05Z SeduceQAQ member/SeduceQAQ 有没有大哥能用通俗易懂的话详细解释下,实在理解不了,最好能举个例子说明一下,谢谢

]]>
请教一下各位, http2 的头部有什么简单的方法去解码吗? tag:www.v2ex.com,2022-12-20:/t/903671 2022-12-20T02:46:16Z 2022-12-20T02:46:16Z ciswind member/ciswind 不是用 wireshark 直接抓取的方法

]]>
后 911S5 时代 各路 ip 代理的对比与选择 (仅供参考) tag:www.v2ex.com,2022-11-30:/t/898958 2022-11-30T01:13:47Z 2023-03-04T23:56:39Z kakatesla member/kakatesla Ⅰ Maxproxy 代理产品类型:动态以及固定住宅 IP 代理网络池:池中有 5000 万个 IP 认证方式:用户密码 地理位置定位:城市 /国家(全球 200 个国家) 代理协议:HTTP ( S )+ Socks5 MaxProxy 也是世界上最大的商业住宅代理服务之一。超过 5000 万新鲜住宅 IP ,支持运营商和城市级灵活定位,轻松集成第三方软件和脚本

专用代理服务器提供的专用 SOCKS5 代理,快速稳定,定期更新。 大多数代理的延迟约为 10 毫秒,匹配专用住宅 IP ,这点我在使用过程中确实感觉到很好用

结合 SOCKS5 代理的高匿名性,保护用户隐私和安全,轻松实现国际网速加速。

客服方面,支持日付、月付,MaxProxy 的专业团队提供及时的技术支持,联系很方便 支持多种联系方式。

MaxProxy 的优点: IP 地址的大量分配 良好的常见问题解答支持页面 安全可靠 廉价代理 易于设置 MaxProxy 的缺点: 暂时没有免费试用

Ⅱ YourPrivateProxy 住宅 IP 工作作为专用代理 代理产品类型:静态住宅 IP 验证方式:用户密码+ IP 验证 地理位置定位:引用 代理协议:HTTP ( S ) YourPrivateProxy 是市场上顶级的住宅代理提供商之一。使用 YourPrivateProxy ,您可以匿名浏览 Internet 并执行诸如社交帐户管理和运动鞋站点之类的任务。

它们只有 2 个用于静态住宅 IP 代理的服务器位置,您可以选择要使用的一个。他们的静态住宅 IP 代理来自美国 2 个城市,弗吉尼亚州阿什本和伊利诺伊州芝加哥。

在速度方面,它们也非常快速。关于安全性,请放心,YourPrivateProxy 很可靠。

它们的价格相当便宜,您可以选择免费试用。但是,他们的退款政策仅允许基于技术而非兼容性的退款。延迟也是 YourPrivateProxy 的最受批评的特性之一。

YourPrivateProxy 的优点: 优惠的价格 选择地点的能力 高速上网 免费试用 YourPrivateProxy 的缺点: 延迟不够好 退款政策仅基于技术性

Ⅲ Proxyrack 适用 于网络抓取的小型项目 代理要约类型:旋转住宅 IP 代理网络池:池中有 480 万个 IP 认证方式:用户+通行证 地理位置定位:不支持(美国或全球混合) 代理协议:HTTP ( S )+ Socks5 Proxyrack 是顶级的住宅代理提供商之一。他们在社交媒体代理提供方面为自己创造了一个利基市场。他们有 Skype ,Whatsapp ,Facebook ,Instagram ,Gmail ,PokémonGo ,Telegram 和 Viper 的代理。

除了提供住宅代理服务外,它们还提供数据中心代理服务,可以说是市场上最便宜的服务之一。即使他们不提供免费试用,也有高达 14 天的退款政策,这是他们信任所提供服务的标志。除代理服务器外,Proxyrack 还进入 VPN 市场,他们拥有自己的市场份额。

在美国和加拿大,亚洲和大洋洲以及欧洲,他们的代理人超过 1,250,000 。他们获得了良好的客户支持服务,并且带宽数量没有限制。

Proxyrack 的优点: 社交媒体自动化的完美选择 良好的客户服务 14 天退款政策 无限带宽 Proxyrack 的缺点: 没有免费试用 地理位置定位功能差

Ⅳ Proxy-cheap 没有每月的货币承诺

代理要约类型:旋转住宅 IP 代理网络池:池中有 6+百万个 IP 认证方式:用户+通行证 地理位置定位:国家(支持 127 个) 代理协议:HTTP ( S )+ Socks5 Proxy-cheap 提供了一些市场上最便宜的住宅代理,且在全球拥有超过 600 万个住宅 IP ,支持约 127 个国家。Proxy-cheap 具有会话代理,这些代理将在更改之前的一段时间内保持相同的 IP (和会话)。如果您正在寻找可以在每次请求后更改 IP 的高旋转代理,也可以从 Proxy-cheap 中获取它们。

Proxy-cheap 声称提供了最佳的性价比。而且,如果您查看它的价格,您会在某种程度上同意这一点,因为它的代理很便宜,且没有每月最低消费承诺。您可以购买低至 1 GB 的带宽,且当您购买更多带宽时,每 GB 的价格可以降至 3 美元。

Proxy-cheap 的优点: 非常便宜 良好的地理位置覆盖 没有最低每月承诺 相当大的游泳池 Proxy-cheap 的缺点: 不提供退款 不太好的客户支持 仅支持国家 /地区级地理位置定位

]]>
HTTP 协议 HEAD 请求,会有查询字符串吗? tag:www.v2ex.com,2022-11-21:/t/896893 2022-11-21T12:30:13Z 2022-11-21T12:37:18Z wencan member/wencan HEAD 似乎就是 GET 去掉响应 Body
但我没找到地方讲 HEAD 会不会跟 GET 一样,有查询字符串。
如果有,麻烦给个 existed 的例子

如果其它方法,也会有查询字符串,请指教 ]]>
一个 http 请求由多个 tcp 数据包组成,一个 tcp 连接可以发送多个 http 请求,是这样吗? tag:www.v2ex.com,2022-11-16:/t/895552 2022-11-16T00:04:44Z 2022-11-16T08:48:12Z wsWmsw member/wsWmsw tcp 连接tcp 数据包的区别

]]>
httpCanary 的上传服务器插件,这个应该如何配置? tag:www.v2ex.com,2022-11-14:/t/895086 2022-11-14T04:46:43Z 2022-11-13T16:46:43Z eluotao member/eluotao
{
"header1": "value1",
"header2": "value2",
"header3": "value3",
"server": "url"
}

想上传指定接口的数据。全部保存到服务器上进行处理。

有没有用过这个功能的前辈,加我微信,请喝奶茶 Base64:MzIzMjk2 ]]>
请教各位技术大大一个 websocket 消息丢失的问题 tag:www.v2ex.com,2022-10-13:/t/886658 2022-10-13T07:37:10Z 2022-10-13T07:42:38Z XCG0000 member/XCG0000 但是连接可以建立成功,即最初使用 http update 和 switch 的流程;
同一时间,其他网络都没问题,包括同应用其他业务的 Http 请求和获取应答。

通过抓包也发现不了什么异常,暂时没啥头绪,只能怀疑网络转发设备是否有阻塞或消息丢失的情况了…… ]]>
某些网站在特定的提交中需要手工选择 chrome 的证书,这是 https 的双向认证吗 tag:www.v2ex.com,2022-08-19:/t/873992 2022-08-19T06:42:19Z 2022-08-20T01:07:06Z among member/among 在访问一个内部网站时候,只有部分的操作,如最后的提交操作后,需要选择证书,这是什么原理。

https 的双向认证应该是打开所有页面才需要,这种情况下,是不是标准的 https 双向认证。

]]>
HTTP/2 长连接的存续期多久? tag:www.v2ex.com,2022-08-06:/t/871056 2022-08-06T03:44:08Z 2022-08-06T03:41:08Z erquiasz0825 member/erquiasz0825 比如访问 v2ex.com ,短时间内打开多个链接,理论上都是复用一个 tcp 连接,它的存续期是多久,以下说法对吗?

  1. 我一直不间断请求 v2ex.com ,那么始终都是一个 http/2 连接,无论过了多久
  2. 我请求了一个 v2ex.com 链接,隔了半个小时,再请求一个 v2ex.com 链接,这是两个不同的连接
  3. gRPC 也是基于 http/2 传输,那么短时间内多次 rpc 请求,是同一个 tcp 连接
]]>
REST 祖师爷 Roy Fielding 说: RPC 就不适合 RESTful 风格。只有超文档适合用 REST tag:www.v2ex.com,2022-07-19:/t/867197 2022-07-19T02:20:24Z 2022-07-19T03:06:16Z lambdaq member/lambdaq I am getting frustrated by the number of people calling any HTTP-based interface a REST API. Today’s example is the SocialSite REST API. That is RPC. It screams RPC. There is so much coupling on display that it should be given an X rating.

What needs to be done to make the REST architectural style clear on the notion that hypertext is a constraint? In other words, if the engine of application state (and hence the API) is not being driven by hypertext, then it cannot be RESTful and cannot be a REST API. Period. Is there some broken manual somewhere that needs to be fixed?

--Roy Fielding, Creator of the term REST

REST APIs must be hypertext-driven

https://htmx.org/essays/how-did-rest-come-to-mean-the-opposite-of-rest/

]]>
2022 年 TLS 1.3 HTTP/2 下到底该不该开启 Gzip 压缩? tag:www.v2ex.com,2022-04-28:/t/849826 2022-04-28T07:09:56Z 2022-04-28T11:16:49Z CatCode member/CatCode Debian 系发行版里的 nginx 配置文件里有一行注释,大概意思说:因为安全原因,建议 SSL 启用时关闭 Gzip 。 搜了一下,确实是有 CRIME 和 BREACH 这两种攻击方式可能针对 HTTPS 下启用压缩,但是都是早些年的攻击方式了。

最近看 NextCloud 这个自建网盘的服务,里面的 js 文件体积巨大,如果不启用压缩,进个页面加载都要转半天。 看了一下安装配置的文档,在 Nginx 里它是针对部分类型启用了 Gzip 压缩的。

此外,Google 也搞出了 ngx_brotli 这么个插件,专门来压缩 HTTP 内容。

此时,我想问问各位,大家认为是否应该 /是否需要开启压缩呢?大家的服务器里开启了压缩吗?

]]>
可以不关闭服务替换证书吗? 谢谢 tag:www.v2ex.com,2022-04-26:/t/849335 2022-04-26T04:46:44Z 2022-04-26T08:50:19Z hkhk366 member/hkhk366 let's encrypt 的证书只有 3 个月,也就是说 3 个月就要换一次证书,我看到的网上的教程都是关闭 nginx 服务后,粘贴新的证书进去,然后开启 nginx 服务,这样会导致服务中断一下,请问有什么办法可以不关闭服务就能更新证书吗?

还有其他 go 语言的框架比如 echo,gin 这种框架,能不能不关闭服务也能更新证书吗?谢谢啦。

]]>
关于 HTTP 中编码一点疑问 tag:www.v2ex.com,2021-12-13:/t/821774 2021-12-13T01:52:58Z 2021-12-13T02:45:52Z yezheyu member/yezheyu 在 HTTP2 协议中,数据是使用二进制传输。

对于这个二进制传输,我不太理解。

假设我给服务器发送的是文本消息:你好

在 HTTP1.1 中会在 head 中标注上:content-type: text/html; charset=UTF-8

然后 body 中把 "你好" 按 utf-8 编码表转成0x4F60(你) 0x597D(好)对应的一长串的二进制形式传输

"你好" 在网络上传输就是二进制传输,为啥不算二进制流?

是因为使用的是文本编码格式吗?

那在 HTTP2 中不使用文本格式编码,怎么处理 "你好" 呢?

是新制定一种编码格式吗?

比如我自定义一种 newCoding 编码:

你 ---> 01

好 ---> 10

在 head 中声明content-type: application/binary; newCoding

然后 body 中就直接发送01 10

我可以这样理解吗?

]]>
http 代理 vs. https 代理 tag:www.v2ex.com,2021-11-05:/t/813303 2021-11-05T07:39:08Z 2021-11-05T07:50:06Z hanssx member/hanssx 起因

小白今天在写 python requests proxies 的时候发现,请求 https 网站一直提示握手失败,部分代码如下

 requests_proxies = { 'http': f"http://{first_proxy}", 'https': f"https://{first_proxy}", } last_proxy = s.get('https://ifconfig.me', proxies=requests_proxies, timeout=10).text 

,后面才发现本地 clash 开的是 socks5 和 http 代理,没有 https 代理,搜索发现网上有人把 https://改成了 http://,使用 http 代理协议来访问 https 网站可以成功。

学习

于是上网学习一番,发现了下面这两篇文章:(其中第 1 篇文章最主要的是评论部分)

  1. https://www.hitoy.org/difference-between-http-and-https-proxy.html
  2. https://lilywei739.github.io/2017/01/25/principle_for_http_https.html

其中第 1 篇文章评论中有一段

techon 2017-02-16 11:04:51 现在来说 HTTP 代理可以支持 SSL ,能够代理 https 网站 HTTPS 代理一般也支持 http 前者为代理协议,后者是应用协议,不可混同一谈 

好像解释了 http 代理协议可以用来访问 https 站点,那么对应第 2 篇文章中的应该就是最后面的图 http 隧道代理

疑惑

]]>
付费求解 curl ssl/tls 突发状况,请求 https 站点均失败。 tag:www.v2ex.com,2021-11-01:/t/812102 2021-11-01T04:46:26Z 2021-11-01T07:47:35Z hanssx member/hanssx 付费 30 红包送给第一位帮助解决此问题的 V 友,以聊表心意。

环境

物理机 Windows 10

C:\Windows\system32>curl -V curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL Release-Date: [unreleased] Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL 

虚拟机 Linux Mint 19.3 ,等价 Ubuntu 18.04 LTS

# mint @ mint-virtual-machine in ~ [11:38:30] $ curl -V curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 Release-Date: 2018-01-24 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL 

在虚拟机中,前几天下午用 pycharm 的时候突然弹出个公司的证书,不知道为啥,就正常写代码中。 公司证书

后面尝试发现所有 https 站点连接都有问题,比如下图中的某度, Imgur

按照 curl 问题指引 https://curl.se/docs/sslcerts.html ,下载 cacert.pem ,运行依然没有效果 Imgur

同时物理机上面的 windows curl 也不好使了 Imgur

忽略掉证书是可以的,比如curl -v https://www.baidu.com --insecure 但是这并不是解决方案啊,另外其他使用 HTTPS 的工具好像也连不上 HTTPS 站点了,像是系统问题?但是实在想不明白物理机和虚拟机同时不能请求 HTTPS 的原因是啥。

]]>
HTTP 标准中将会增加的两个新的和缓存有关的 Response header tag:www.v2ex.com,2021-10-22:/t/809867 2021-10-22T09:40:03Z 2021-11-06T05:14:05Z Livid member/Livid
[Target]-Cache-Control

其中目前 Cloudflare 已经可以支持 [Target]-Cache-Control

https://httptoolkit.tech/blog/status-targeted-caching-headers/ ]]>
请教大佬有关 http/3 支持的问题 tag:www.v2ex.com,2021-10-12:/t/807196 2021-10-12T00:57:31Z 2022-01-21T03:50:22Z semglassiebaba member/semglassiebaba 如何分辨网站是伪静态还纯静态网址? tag:www.v2ex.com,2021-09-28:/t/804921 2021-09-28T08:26:38Z 2021-09-30T21:43:51Z Sue6080 member/Sue6080 我有百度找方法,但浏览器输入 Javascript:alert(document.lastModified)查询网页时间的这个方式是过时了吗? 因为一堆网站刷新后时间都会变动,难道一堆网站都用伪静态网址吗? 然后查百度首页刷新后也是一直变时间,有其它方法可以检测伪静态还纯静态网址吗?或是有线上工具之类的

]]>
关于 querystring 疑问 tag:www.v2ex.com,2021-09-02:/t/799376 2021-09-02T01:34:31Z 2021-09-02T03:47:35Z aqtata member/aqtata 大家都知道参数是键值对的形式

/?key=value

我想问的是规范中有没有对这种格式做出解释?

/?xxx

这个xxx是当作 key 处理了还是当作 value 处理?还是由服务器实现决定?

]]>
接口(服务端)如何判断客户端是否已经关闭此次 http 请求了 tag:www.v2ex.com,2021-08-26:/t/798214 2021-08-26T13:18:57Z 2021-08-26T16:27:53Z Dogod37 member/Dogod37 背景:框架 struts2,基于 servlet 实现了一个接口。

问题:客户端从外部发来一次 http post 请求。如果客户端的 socketTimeout 时间(比如 10s )小于服务器处理这次请求业务数据的时间(比如从收到请求建立连接要 30s 才能返回结果给客户端),那这时候客户端已经 timeout 关闭了此次连接了,服务端能否感知到或者说检测到返回数据时客户端已经关闭的状态?

菜鸟提问,各位大佬多多包涵哈哈。

]]>
居然 http 还有 418 这么个状态码 tag:www.v2ex.com,2021-08-26:/t/798191 2021-08-26T09:47:40Z 2021-08-27T09:18:11Z MonTubasa member/MonTubasa 今天在看 http 协议的时候,忽然瞄到一个 418 状态码

418 I'm a teapot 服务器拒绝尝试用 “茶壶冲泡咖啡”。

wtf?这玩意在 developer.mozilla.org 这个网站上显示是所有浏览器兼容,实际上测了一下,就没有哪个浏览器兼容的。 这玩意真震撼我一年, 查了一查,居然还有个 [save418]https://save418.com 这么个网站。 一时不知道说什么好。 话说各位有没有谁知道哪个浏览器现在支持这个状态码的?我想打开看看。

]]>
切换到 http2 对开发人员是有感知的吗? tag:www.v2ex.com,2021-08-20:/t/796988 2021-08-20T04:30:27Z 2021-08-20T08:40:26Z LeeReamond member/LeeReamond 昨天用 http2 传了大概 300G 的图片数据,多线程跑了 24 小时左右,表现令人意外地惊喜,全程无断连,数据的 md5 也全部校验通过。

不太清楚这里面有多少是由于 http2 的特性保证的,但有点动心想把服务迁移到 http2 。想问一下如果想使用 http2 这些比如连接复用之类的特性,在服务端开发过程中是有感知的吗?还是说把挂载服务的 nginx 调到支持 http2 就 ok 了,剩下的浏览器会自动完成?

]]>
关于 quic 第一次连接 需要 tcp(http2)支持的困惑 tag:www.v2ex.com,2021-07-29:/t/792531 2021-07-29T10:49:33Z 2021-08-04T01:56:00Z v2clay member/v2clay www.v2ex.com/cdn-cgi/trace 。测试中发现
貌似 quic 有些 bug,第一次连接需要 http2,即 tcp 支持,当第一次链接成功后,第二次再刷新,就变成了 http3 。
没搞清楚原因。
也没有搜索到相关的资料。 ]]>
Postman 200 然而 curl 302 tag:www.v2ex.com,2021-07-15:/t/789661 2021-07-15T03:28:14Z 2021-07-15T04:32:20Z likefly member/likefly 我想抓点儿数据,地址是 https://www.uukanshu.com/b/151226/
然而浏览器和 postman 访问没问题,200
用 curl 就不行了,返回一个 302 跳转 404 的页面。

我特意查看了 postmanheader

Wm3ACd.png


使用 curl 加上 postmanheader 执行一下

curl -H "User-Agent:PostmanRuntime/7.28.2;Accept:*/*;Host:www.uukanshu.com;Accept-Encoding:gzip, deflate, br;Connection:keep-alive;Cookie:ASP.NET_SessiOnId=tbugww5w3cqigikqsg2ezvm5; fcip=111" https://www.uukanshu.com/b/151226/ 

得到如下的返回

<html><head><title>Object moved</title></head><body> <h2>Object moved to <a href="/404.htm">here</a>.</h2> </body></html> 

想请教一下如何解决这个问题呢,目标网站没看懂是如何做的校验,谢谢

]]>
怎么用 httpcanary 在安卓 7 抓小程序的包? tag:www.v2ex.com,2021-07-12:/t/789116 2021-07-12T13:11:59Z 2021-07-12T16:40:37Z dongcheng member/dongcheng
谢谢 ]]>
如何安全地将局域网内的 http 服务暴露在公网? tag:www.v2ex.com,2021-07-10:/t/788791 2021-07-10T21:41:13Z 2021-07-11T11:08:15Z dangyuluo member/dangyuluo 我在局域网内搭建了一个 Frigate ( object detection)服务,用来做一些家庭自动化。Frigate 提供了一个 web 接口,监听在 10.0.0.200:5000 上。为了在外访问,我把路由器开放了一个端口转发。但是 Frigate 本身既不提供 https,也不提供鉴权,因此我需要配置一些安全措施。

我可以另外搭建一个 nginx 作为 https 反向代理,但是鉴权的话现在只能想到 https basic authenticate 。请问有没有更安全、简单的做法呢?

]]>
关于 HTTP 代理的疑惑 tag:www.v2ex.com,2021-05-27:/t/779690 2021-05-27T17:47:47Z 2021-07-04T18:56:19Z keyword233 member/keyword233 在 HTTP 隧道代理中,客户端可以单独指定目标服务器的 ip 么?还是只能把 host 交给代理服务器让代理服务器来解析对应 ip?

代理服务器版本 squid/3.5.19

]]>
对 HTTP3 的性能疑惑 tag:www.v2ex.com,2021-05-25:/t/779143 2021-05-25T09:43:31Z 2021-05-27T04:43:47Z monkeyNik member/monkeyNik 理论上 HTTP3 依赖于 UDP 传输,免除了 TCP 的建连和断连握手,性能应该有很大提升。但是本人使用 h2load (支持 http3 的版本)进行测试发现 HTTP1.1 的性能远高于 HTTP3,不管是客户端与服务器是否在同一台机器上。同机上 HTTP1.1 比 HTTP3 的 QPS 高一个数量级,跨机的情况下 HTTP1.1 比 HTTP3 高 3 倍左右。
服务器使用了 Nginx 官方的 Nginx-quic 版本以及 cloudflare 的 Quiche Patch,这两款均进行了测试,结论都是一致的。 不知道诸位 v 友有没有什么好的建议,是否是我配置的问题(个人感觉没啥过多需要配置的额)?

]]>
关于 http 处理 grpc-gateway stream 流式响应时的问题 tag:www.v2ex.com,2021-05-11:/t/776316 2021-05-11T11:29:39Z 2021-05-11T11:26:39Z HUNYXV member/HUNYXV http 请求 stream 响应时,response body 打印出来是正确的结果:

 {"result":{"code":1,"msg":"1111"}} {"result":{"code":2,"msg":"2222"}} {"result":{"code":3,"msg":"3333"}} {"result":{"code":4,"msg":"4444"}} {"result":{"code":5,"msg":"5555"}} {"result":{"code":6,"msg":"6666"}} 

但是使用runtime.JSONPb.Decode 时,也会得到五个结果,但每个 decode 出来是个 nil... :

=== RUN TestHttpRespStream service_test.go:147: resp: <nil> service_test.go:147: resp: <nil> service_test.go:147: resp: <nil> service_test.go:147: resp: <nil> service_test.go:147: resp: <nil> service_test.go:147: resp: <nil> service_test.go:149: EOF --- PASS: TestHttpRespStream (0.62s) 

这是 proto 文件:

// ./pb/test.proto syntax = "proto3"; package pb; option go_package = "/pb;pb"; import "google/api/annotations.proto"; message Req { int32 id = 1; string name = 2; } message Resp { int32 code = 1; string msg = 2; } service TestService { rpc QueryStreamResp(Req) returns (stream Resp){ option (google.api.http) = { post: "/query-stream-resp" body: "*" }; }; rpc QueryStreamReq(stream Req) returns (Resp){ option (google.api.http) = { post: "/query-stream-req" body: "*" }; }; rpc Query(stream Req) returns (stream Resp){ option (google.api.http) = { post: "/query" body: "*" }; }; } 

grpc 服务端:

func (ts *TestService) QueryStreamResp(req *pb.Req, stream pb.TestService_QueryStreamRespServer) error { log.Printf("QueryStreamResp|start...|req: %+v\n", req) result := []*pb.Resp{ {Code: 1, Msg: "1111"}, {Code: 2, Msg: "2222"}, {Code: 3, Msg: "3333"}, {Code: 4, Msg: "4444"}, {Code: 5, Msg: "5555"}, {Code: 6, Msg: "6666"}, } // header := make(metadata.MD) // header.Append("content-type", "application/json") // stream.SendHeader(header) for i := range result { log.Printf("resp: %+v", result[i]) if err := stream.Send(result[i]); err != nil { log.Fatal(err) } time.Sleep(100 * time.Millisecond) } log.Println("QueryStreamResp|stop...") return nil } 

单元测试:

func TestHttpRespStream(t *testing.T) { url := "http://127.0.0.1:8080/query-stream-resp" reqData := &pb.Req{Id: 1, Name: "111"} var buffer bytes.Buffer encoder := (&runtime.JSONPb{}).NewEncoder(&buffer) if err := encoder.Encode(reqData); err != nil { t.Fatal(err) } ctx, cancel := context.WithCancel(context.Background()) defer cancel() req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, &buffer) if err != nil { t.Fatal(err) } resp, err := http.DefaultClient.Do(req) if err != nil { t.Fatal(err) } defer resp.Body.Close() // body, err := ioutil.ReadAll(resp.Body) // if err != nil { // t.Fatal(err) // } // t.Logf("body: %s", string(body)) jsonb := new(runtime.JSONPb) dencoder := jsonb.NewDecoder(resp.Body) for { var result *pb.Resp err := dencoder.Decode(result) if err == nil { t.Logf("resp: %+v", result) } else { t.Logf("%+v", err) break } } } 
]]>
关于 https 双向认证的细节 tag:www.v2ex.com,2021-05-02:/t/774653 2021-05-02T10:12:35Z 2021-05-05T09:46:08Z angcz member/angcz
1.客户端证书是怎么生成的?
看网上说是由颁发服务端证书的 ca 生成的,感觉应该不对吧?也许实际应用中是用服务端自签名证书生成的?

2.客户端证书是怎么安装到客户端的?
分 app 和网页两种情况;对于不同的用户,安装的 app 应该都是一样的吧,那就是说大家用的都是同一个客户端证书,感觉不对吧?而且如果是安装时内置的话,那网页要怎么办呢,网页没有安装的过程吧?所以应该是安装之后生成的?但是生成又需要 ca 私钥,这东西不可能内置在客户端,那是通过网络传给客户端的吗,这样没法保证安全,应该也不是的吧?

3.双向认证怎么防止抓包的呢?
以这里 https://cloud.tencent.com/developer/article/1171381 第五节的图为例,我如果抓包,只要把 4 和 6 透传给服务端,然后把 8 透传给客户端,不就能正常拦截到 9 (之前已经把服务端证书替换成抓包软件证书),也就拿到了对称加密密钥了吗?

再次感谢大家指导。 ]]>
请教实现一个支持 TCP、自定义等协议仿 POSTMAN 程序的思路? tag:www.v2ex.com,2021-04-06:/t/768264 2021-04-06T02:18:48Z 2021-04-06T05:51:16Z silencil member/silencil 如题,业务痛点:我们的系统有多个接口需要向第三方系统进行发送数据,接口使用的大部分是两方系统协商的自定义协议,而我们这边每次开发完都是两眼抹黑的部署上去,没有一个很好的方案测试;我们也无法使用第三方系统来对我们的接口进行测试;所以希望能有一个支持自定义协议的测试程序,请教各位有什么好的实现方式吗?我现下觉得应该做成 web 方式,支持手动和定时请求。

]]>
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86