热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何强制浏览器http请求中包含“主机”标头

如何解决《如何强制浏览器http请求中包含“主机”标头》经验,为你挑选了1个好方法。

我不明白,host输入网址时如何强制浏览器包含标头?根据我的观察,访问某些URL时host将包含标头,但不包含标头。

如下访问stackoverflow的示例:

我不明白,我们如何控制其行为以包含host名称?如果我有多个使用相同IP的子域,则无法区分我要访问哪个应用。



1> Josh Cooley..:

Stackoverflow使用HTTP / 2,它使用:authority标头而不是host。如果您在右侧滚动,则可以看到它。

有关更多信息,请参见RFC7540:

“为了确保可以正确再现HTTP / 1.1请求行,从具有原始或星号形式请求目标的HTTP / 1.1请求进行转换时,必须忽略此伪标题字段。直接生成HTTP / 2请求的客户端应该使用“:authority”伪头字段而不是主机头字段,如果请求中不存在一个将请求从HTTP / 2请求转换为HTTP / 1.1的中介,则该中介必须创建一个主机头字段,方法是复制“:authority”伪标题字段。”

如果我有多个使用相同IP的子域,则无法区分我要访问哪个应用。

Stackoverflow还使用HTTPS。Web服务器可以基于TLS握手中传递的SNI扩展路由到正确的域。

https://www.globalsign.com/cn/blog/what-is-server-name-indication/

“在HTTP站点上,服务器使用HTTP HOST标头确定应显示的HTTP网站。但是,在使用TLS(HTTPS背后的协议)时,需要先建立安全会话,然后才能建立HTTP会话,直到此为止,没有主机头。

...

服务器名称指示(SNI)是TLS协议的扩展。客户端使用TLS握手中的SNI扩展名指定要连接的主机名。这允许服务器(例如Apache,Nginx或诸如HAProxy之类的负载平衡器)从列表或数据库中选择建立连接所需的相应私钥和证书链,同时将所有证书托管在一个IP地址上。 ”


推荐阅读
author-avatar
太2真人05
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有