这里发生了什么?

问题描述:

http://www.google.se/search?Key1=Value1&Key2=Value2这里发生了什么?

我可以得到关于这个链接的一些技术构想吗?

我知道这些。 第一个“http://”描述服务器使用, “www.google.se”是服务器名称。

我的问题包括: 是“搜索”服务器根文件夹中的CGI脚本?如果是这样,为什么它没有.cgi扩展名? 如果不是这是什么,我可以得到任何搜索示例脚本(如果它是一个脚本)。

+1

请注意,“http://”部分表示用于检索给定URI的高级协议。在深入研究这些内容之前,你应该多一些阅读网络,计算机体系结构和其他基本的东西。 – Slavic 2012-01-04 00:05:14

Web服务器可以以任何方式响应任何URL,而不必在文件系统中的特定位置拥有CGI脚本。

它可以编写与以下假设方法中web服务器:

def GET(host, path, query): 
    if path == "/hello": 
     print "Hello, world" 
    elif path == "/search": 
     perform_search(query) 

没有为CGI脚本在任何地方存在,没有任何要求。

+0

有趣的,所以你建议“搜索”可能是一个路径! – Gokul 2012-01-04 00:06:20

+0

@Gokul:他暗示处理URL“http://www.google.se/search?Key1 = Value1&Key2 = Value2”的“东西”可能是任何东西,并且不需要对应于文件或脚本或路径管他呢。很可能是服务器根据URL中的字符数来组合响应,仅此而已。您可能会喜欢[HTTP](http://en.wikipedia.org/wiki/HTTP)的工作原理。 – 2012-01-04 03:03:03

这被称为URL重写。它是在Web服务器内完成的,并且可能涉及将请求发送到单个文件(例如index.php或cgi),而不会看到它。

在这个特殊的例子谷歌可能发送以“/搜索”开始的search.php虽然search.php中肯定会知道,URI是搜索?键1 =值&键2 =值你将所有的请求看看你在地址栏中看到了什么。

+0

我不认为你有注意到这些。我的问题包括:在服务器根文件夹中“搜索”CGI脚本?如果是这样,为什么它没有.cgi扩展名?如果不是,那么究竟是什么,我可以得到任何搜索示例脚本(如果它是一个脚本)。 – Gokul 2012-01-04 00:02:30

+0

我的答案就在那里。如果你无法理解它,那意味着你还没有准备好真相。很抱歉地说。 – Slavic 2012-01-04 00:07:27

+0

尽我所能,仍然没有得到任何答案我的问题..从你的答案如何谷歌发送所有的请求开始/搜索search.php。这是我失踪的部分! – Gokul 2012-01-04 00:16:43