2012-01-03 134 views
1

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

回答

0

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

0

這被稱爲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

相關問題