2011-01-12 34 views
2

看起來你今天不再需要在html鏈接或圖像鏈接中用%20編碼空格。例如,假設你在[http://example.com/i/my house.jpg]中有這個圖像。注意那裏的空間。在你的html代碼中,你可以這樣做:url中的空間;瀏覽器變得更聰明還是服務器?

<img src="http://example.com/i/my house.jpg" alt="my house"> 

它可以在所有當前版本的瀏覽器中工作。雖然,我不確定瀏覽器在請求url之前是否對其進行了編碼,或者特定的服務器會使用帶有空間的路徑執行正確的操作? (apache)

附錄: 抱歉有關混淆。我真正的問題是關於HTTP協議。 我會保留原樣並標記爲已回答。 我在這裏發佈了一個新問題。 does HTTP protocol require space be encoded in file path?

+0

PS我知道URL中需要百分比編碼。無論如何,我現在想知道http協議是否需要在GET標題行的文件路徑中使用時對空間char進行編碼。 (試圖用telnet測試...但我忘了其他頭是必要的,所以我中止了測試) – 2011-01-12 05:52:49

回答

7

瀏覽器進行更正。

雖然你仍然需要編碼空格。僅僅因爲它在您使用的瀏覽器中工作並不能使其有效,並不意味着它可以在任何地方使用。

你可以看到保留字符和其他字符列表,應該在這裏編碼:http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

RFC1738明確規定:

因此,只有字母數字,特殊字符「$ -_ + !*'(),「和 用於其保留目的的保留字符可以用於在URL中未編碼的 。

RFC2396發生在RFC1738和URL中闡述了空間使用率:

空格字符被排除在外,因爲顯著空間可能 消失,並可能引入顯着的空間時,URI是 轉錄或排版或受到字 處理程序的處理。空白還用於在很多 上下文中分隔URI。

+0

http協議是否需要文件名中的空間編碼?例如在「GET/some thing.html HTTP/1.1」 – 2011-01-12 05:41:28