2017-03-20 53 views
0

看起來你不能總是使用Ajax設置「user-agent」頭。 (用戶代理有些是保留關鍵字,並且由於安全考慮,您不能在某些瀏覽器上僞造它)。最佳實踐:使用http標頭中的「User-Agent」來標識應用程序?

當調用我的REST服務時,我希望調用者給我一個關於誰(使用哪個應用程序)的線索。 註冊不是強制性的,它是一種檢查是否有一些外部(有價值)客戶端在我想關閉時仍然使用我的Web服務的方法。

因此,如果我不能使用「用戶代理」是否有一些選擇使用的名稱呢? X-Application-Id? X-UserAgent?

是否有一些文檔列出所有這些X - ***標題?

+0

關於'X -...'前綴,我認爲這個想法是能夠彌補你的。 –

+0

太多的選擇:)這樣的用途是否有事實上的標準? – frenchone

回答

0

根據您的應用程序,它可能會也可能不會將自定義標頭添加到您的應用程序。

從你的問題,我假設你可以設置自定義標題。爲你的應用程序的默認是使用用戶代理標示爲中描述的Official HTTP Specification

「用戶 - 代理」首部字段包含關於用戶代理髮起該請求,這是經常使用的服務器的信息幫助識別報告的互操作性問題的範圍,解決或定製響應以避免特定的用戶代理限制,以及有關瀏覽器或操作系統使用情況的分析。用戶代理應該在每個請求中發送用戶代理字段,除非專門配置不這樣做。

如果您選擇添加另一個自定義標題,則沒有對標題名稱的限制或建議。請注意,在RFC 6648說明你不應該使用「X-」的前綴:

歷史上,應用協議的設計者和實施者經常標準化和非標準化參數之間的前綴來非標準參數的名稱區分字符串「X-」或類似的結構。在實踐中,該慣例會導致比解決問題更多的問題。因此,本文檔在應用程序協議中使用文本(而不是數字)名稱來約定新定義的參數。

+0

是的,我可以設置自定義標題。但某些瀏覽器(某些版本的Chrome)不允許您設置「用戶代理」。 – frenchone

相關問題