使用Accept-Language頭部的區域設置處理回退的正確方法是什麼?在從語言環境中刪除任何子標記(區域等)之前,應用程序是否應嘗試完全匹配所有請求的語言環境?或者應該以相反的方式發生,即使請求中不存在這些無區域的語言環境? HTTP spec沒有提供任何跡象。如何處理接受語言回退?
1
A
回答
1
早在2014年,RFC 2616已經被RFC 7230至7235所淘汰。請不要再提及它。通過新的RFC,Accept-Language
標題現在受RFC 7231, section 5.3.5的管理。所述部分指的是RFC 4647, section 3.3,它已經通過RFC 2616進行了授權。此外,RFC 7231明確指出要使用「基本過濾」匹配策略,其在RFC 4647, section 3.3.1中有詳細描述。
基本過濾或多或少是前綴搜索。但請注意,此搜索正在尋找一個句法前綴,而不是詞彙之一。預計應用程序將按照質量降序(如果沒有提供質量,這是客戶提供的訂單)通過請求的語言標籤列表,並查看每個標籤是否可以進行統計。如果沒有可statisfied,RFC 7231點的狀態是:
如果頭域出現在請求並沒有可用的 表示爲響應有一個相匹配的語言標記,則 源服務器可以忽略通過將 響應看作是不受內容協商的約束或通過發送406 (Not Acceptable)響應來承認 標頭字段來處理標題字段。
相關部分的確強調,忽略語言要求是更爲理想的事情。
相關問題
- 1. gettext:如何回退到基本語言?
- 2. JAX-WS如何設置接受語言
- 3. 接受語言列表
- 4. CrossWalk - 接受語言標題
- 5. IBM DB2 TextSearch //語言= AUTO //語言處理
- 6. 如何處理python中的unicode語言
- 7. 如何處理多語言界面?
- 8. 處理語言vs javascript?
- 9. 自然語言處理庫
- 10. 自然語言處理庫
- 11. 處理與Java語言
- 12. 自然語言處理
- 13. 的語言XML處理
- 14. 如何根據接受的語言標題翻譯Symfony 2中的語言?
- 15. 如何根據接受的語言標題翻譯Symfony 2.1中的語言?
- 16. Hystrix回退處理2 dbcall
- 17. 自然語言處理/命令(序言)
- 18. Java默認語言環境回退
- 19. 什麼是內容語言和接受語言?
- 20. 遞歸可判定語言,接受無限語言
- 21. 處理async_accept時不接受?
- 22. 處理closeEvent接受/忽略
- 23. 何時使用處理語言?
- 24. 語言可以接受無限數字
- 25. 改裝2:默認接受語言
- 26. Chromedriver設置單一接受語言
- 27. 掌上電腦接受哪些語言
- 28. Thread.CurrentThread.CurrentUICulture Vs的接受語言中的ViewModels
- 29. Textfield不接受阿拉伯語言
- 30. 如何處理退格鍵
爲了安全起見:這裏的假設是一個基本的,未加權的談判區域列表? – DaSourcerer
不一定。如果我得到像'en-US,pt-BR; q = 0.9'這樣的東西,但是'en-US'不能直接使用,是否應該在搜索'pt-BR'之前回退到'en'? – timwoj
不,見下文。如果它在'en-US'中找不到表示,應用程序預計會接下來嘗試'pt-BR'。如果客戶端請求'en':它會匹配'en-US',因爲它是一個前綴。 – DaSourcerer