当我注意到这一点时,我正在开发一个网络爬虫。
网址1:http://www.techwyse.com/services/
网址2:http://www.techwyse.com/contact-us.php
网址1没有像HTML或aspx这样的扩展名。但是它显示了一个页面。是否可以知道正在显示的页面的确切名称? (它不会显示在浏览器中)
我们称这些网址为URL2?
先谢谢
答案 0 :(得分:1)
http://www.techwyse.com/services/表示网络服务器上的文件夹,而http://www.techwyse.com/contact-us.php表示网络服务器上的实际文件。
当您请求文件夹时,基本上可以发生4件事情:
答案 1 :(得分:0)
这是通过URL重写来完成的 http://msdn.microsoft.com/en-us/library/ms972974.aspx
答案 2 :(得分:0)
使用apache模块可以实现的PHP mod_rewrite
编辑:没有通过发布的链接。
这里的服务是目录,因此在DirectoryIndex
文件中设置httpd.conf
的文件名(通常是index.php但可以更改)将被执行。
您也可以使用.htaccess
更改该文件。
让我们做一个快速测试来理解这一点。
在services
目录中创建一个文件并为其命名(例如test.php
)
创建.htaccess
文件并添加以下行
DirectoryIndex test.php
然后转到http://www.techwyse.com/services/
您现在会看到test.php
文件已被执行而不是index.php
答案 3 :(得分:0)
URL 1:只调用服务器上的目录,Web服务器提供默认文档。
在这种情况下,它是http://www.techwyse.com/services/index.php
(与网址1相同的页面)。您可以通过打开返回404的http://www.techwyse.com/services/index2.php
来尝试这不是巧合。
答案 4 :(得分:0)
网址1没有像HTML或aspx这样的扩展程序。但它显示一个页面。是否可以知道正在显示的页面的确切名称? (它不会显示在浏览器中)
页面名称将是<title>
元素内的文本(假设是HTML文档)。无法知道文件名,或者即使有文件开头也是如此。 URL解析为资源以及HTTP服务器如何确定资源是HTTP服务器的实现细节,与客户端完全无关。
(轶事时间:一位朋友对他的大学不满意他的HTTP服务器的内容并忽略robots.txt指令并不感兴趣,所以他编写了一个脚本来生成包含随机链接的随机HTML文档,让它花费几个天数在random.py
生成资源的随机网址上完全无意义。无法知道random.py
是从服务器外部调用random.py
的(甚至是它存在的,虽然相对容易推断))。
确切的网址是 http://www.techwyse.com/services/
(可能还有其他网址可以解析为相同的资源,但是其中的网址是书面的。)
我们称这些网址为URL2?
网址。 (如果你真的想区分它们,你可以说“带有看似文件名的网址”)。
答案 5 :(得分:0)
第一个URL由mod_rewrite或Java servlet(可以映射到任何路径)处理,或者它只是一个目录索引。大多数Web服务器都允许您在目录中放置具有给定(通常是可配置的)名称的页面,例如index.html或index.php,并且默认情况下会加载该页面。因此,例如,www.mysite.com/实际上加载了www.mysite.com/index.html。这也适用于子目录。
答案 6 :(得分:0)
您提到的第一种URL可能是通过在名为“services”的目录中只有一个名为“index”的文件来创建的。如果URL未指定文件,则大多数Web服务器将默认查找文件名“index”。
考虑到第二个示例是带有PHP扩展名的文件,第一个URL引用的文件很可能是“index.php”。