2011-05-20 108 views
13

我想解釋一下web應用程序的基礎知識。我在META-INF和WEB-INF上遇到了這個問題。這些目錄是如何得到這些名字的?爲什麼META-INF叫做META-INF?

+0

有什麼名字出現?有人挑選它,可能是由於艾薩克提到的原因。大寫它,B/C ....,然後名字就卡住了。這就像問爲什麼它是'http',當它可能是'htp:'..只是一個更好的模因,我想 – 2011-05-20 17:14:25

回答

12

Jar文件實際上是帶有額外信息和可能更好的索引的ZIP文件。當將額外的信息打包到ZIP文件中時,將它放在一個不太可能與普通ZIP文件內容衝突的位置非常重要。

將META-INF選擇爲可存儲有關JAR文件信息的目錄是嘗試將目錄用作ZIP文件中的名稱空間。基本上,如果它被存儲在META-INF中,它是元數據信息,或者(選擇元的可能含義),「自我信息」或「抽象信息」。

這樣就可以存儲影響ZIP文件本身處理ZIP文件的信息,而不會破壞ZIP文件的打包。這是關鍵,因爲它不需要創建新的便攜式壓縮格式,並將其推廣到Java代碼打包的目的。隨着人們習慣於使用META-INF,ZIP文件中的新「名稱空間」就是爲特定的打包格式創建的,例如「WEB-INF」。

對ZIP文件格式的第一個「擴展」是增加了一個清單,或MANIFEST.MF和可選的索引列表(以加速項目提取)。現在,這些文件(由於具有已知的擴展名空間)能夠以許多其他方式擴展,如最近爲服務註冊添加子目錄「服務」。

當您考慮到ZIP文件包含文件和目錄時,僅將目錄用作名稱空間纔有意義。

+0

(步驟:Zip文件只包含文件,沒有目錄,文件名可以很長。) – 2011-05-20 18:52:32

+0

@Tom,true。 Zip的文件名路徑作爲目錄條目。在提取文件的過程中,路徑會根據需要轉換爲目錄。由於這個「目錄」綁定到一個文件,它仍然很好地服務於JAR文件的名稱空間要求;然而,它確實使得無法在ZIP檔案中真正存儲獨立於文件的目錄。 – 2011-05-20 19:14:09

+0

謝謝!這非常有見地。我也認爲WEB-INF遵循了META-INF公約。 – 2011-05-22 05:04:30

1

如果我沒記錯的話meta-inf是爲meta信息。這可能是完全錯誤的。如果這是正確的,你大概可以猜到WEB-INF是網絡信息:-P

7

Meta

Web

「天道酬勤」 我猜想是短期的 「信息」。

+1

這個問題問到如何目錄名稱來,而不是他們的意思。 – jzd 2011-05-20 16:49:03

+2

標題是「爲什麼META-INF被稱爲META-INF」,我解釋了連字符名稱的每個部分是什麼意思,兩個是通過維基百科文章的鏈接,另一個是通過猜想(我從來沒有真正見過關於「 INF「的名稱,但我可以分享的每一個軼事都表明它的意思是」信息「。)。如果你正在尋找一個完整的詞源,english.stackexchange.com可能是一個更好的地方,但我認爲他們通常使用詞典,俚語和成語。 – 2011-05-20 16:55:20

+1

@Geordee,我想我對這個問題的理解是,爲什麼它命名爲WEB-INF,而不是WEB-INFO。你能澄清你的問題嗎? – jzd 2011-05-20 17:01:25