php抓取网页域名( Host字段不同如何配置如果服务器使用Apache字段的网站域名)
优采云 发布时间: 2021-11-10 20:05php抓取网页域名(
Host字段不同如何配置如果服务器使用Apache字段的网站域名)
GET / HTTP/1.1
Host: www.google.com
整个请求将被发送到服务器。有一个 Host 字段,用于标识您要请求的 网站 域名。即使访问的是同一个IP地址,由于Host字段不同,服务器软件也有区分的方法。其中网站是具体访问。
Host字段的具体定义请阅读RFC-2616第14.23节:/rfc/rfc2616.txt
以下是摘录(注意黑体部分):
14.23 主机
Host 请求头字段指定 Internet 主机和端口
被请求的资源的数量,从原创获取的
由用户或引用资源提供的 URI(通常是 HTTP URL,
如3.2.2)部分所述。 Host 字段值必须代表
源服务器或网关的命名权限
原创网址。这允许源服务器或网关
区分内部不明确的 URL,例如根“/”
单个 IP 地址上多个主机名的服务器 URL。此外,RFC-2616 并不是 HTTP 协议的最新规范。具体规范请参考RFC-2616的描述链接:RFC 2616信息
2、服务器端如何配置
如果服务器使用Apache,在Apache配置文件中添加VirtualHost即可添加新的虚拟主机:
服务器管理员 admin@admin
DocumentRoot "D:/website1"
服务器名称
DirectoryIndex index.php
服务器管理员 admin@admin
DocumentRoot "D:/website2"
服务器名称
DirectoryIndex index.php
上面定义了两个域名并且在不同的根目录下。通过这个配置,如果Apache收到一个请求,那么它会去d:/website1寻找对应的页面。如果是请求,那么去d:/website2 找到对应的页面。
通常Apache也有一个默认的网站,这个网站可以使用IP地址访问。如果这个网站设置为无效,那么主机就不能直接通过IP地址访问HTTP资源。
对于IIS,IIS可以使用同一个IP绑定多个站点。详情请参考下图:
在默认的网站->Properties->网站->Advanced中,添加不同的域名即可。由于我的IIS版本较低,无法支持绑定多个网站。在更高版本的IIS中,可以配置多个网站,每个网站绑定不同的域名,可以实现访问时的区分。
如果服务器没有设置默认的网站,那么IP地址不能直接访问主机。
所以,如果直接通过IP地址访问网站,会遇到两种情况:
<p>1、服务器已经设置了默认的网站,或者使用IP作为主机名来匹配请求的Host字段,那么这就是你通过IP访问的网站;