簡體   English   中英

這樣,用戶代理就可以被偽造了。好吧……是否有正當的理由為什么我不應該使用php來檢測瀏覽器?

[英]So the user agent can be faked.. Ok… is there a valid reason why I shouldn't use php to detect the browser?

我從未理解為什么有人說為每個瀏覽器創建自定義CSS是一件壞事。 為了使我的頁面尺寸減小並縮短下載時間,對我來說,為主要的瀏覽器(尤其是IE的多種形式)定制css是非常有意義的,而對於其他所有功能,一般都可以捕獲所有css。

如果您想派出一副腫,龐大的CSS世界瑞士軍刀,那么在任何情況下,請繼續前進,我不會阻止您。

這樣做時,快速檢測瀏覽器很重要。 加載JavaScript文件以檢測瀏覽器似乎很慢。 因此,我寧願使用php來檢測瀏覽器,並發送指定的CSS。 或至少是一般瀏覽器特定的CSS,然后使用JavaScript加載CSS的更詳細版本。

但是我讀了一篇又一篇關於為什么這是一件壞事的文章。 這些文章背后的主要原因是因為用戶代理可以被偽造。 或者在那里使用Firefox,但是服務器認為他們正在使用IE7,因此它發送了錯誤的CSS文件。

作為Web應用程序的開發人員/設計師,為什么這是我的問題? 如果您想使用Firefox,但告訴我的服務器您使用的是safari或IE *,並得到一個看上去很cr腳的頁面,為什么這是我的問題?

如果用戶看不到您的網站,他們就永遠不會再回來,或者對我提出某種類似的論點,也不要丟掉整個內容。 普通用戶不會這樣做。 它只會是知道如何執行此操作的人,並且在我的網站看起來很爛時會知道出了什么問題。

這類似於在舊的Apple II上瀏覽我的網站(我不知道如何),並大喊大叫我,因為一切看上去都很綠色。

那么,為什么我不應該使用php來檢測瀏覽器並發送自定義的css文件,這不是一個出於個人喜好的好理由嗎?

我主要針對不同版本的IE執行此操作。 對於某些站點,似乎添加了IE6和IE7部分,它們的大小僅是CSS文件的兩倍或三倍。

通常,當用戶故意偽造用戶代理字符串時,是因為在用戶的瀏覽器中看不到某些內容。 例如,某些站點可能會將用戶限制為IE或Firefox,但用戶在Debian上使用Iceweasel。 Iceweasel只是出於商標原因而重命名的Firefox(也有一些其他更改),因此沒有理由該站點不起作用。

請注意,發生這種情況的原因是 (不好的)瀏覽器檢測能力,盡管並非如此。 我要說的是您不必非常擔心這個問題。 此外,如果您可以使您的網站合理地跨瀏覽器兼容,那么這將無關緊要。 如果您確實要使用特定於瀏覽器的CSS,而又不想在一個CSS文件中全部使用,則不要讓虛假的用戶代理阻止您。

只要您要做的就是更改樣式表,就我所知,沒有任何正當理由。 如果您嘗試通過瀏覽器提供自定義安全措施,那么將會遇到問題。

不確定php,但是在Rails中,根據用戶代理提供css文件和不同的布局是一種正常而簡單的做法,尤其是考慮到您的站點很可能被眾多可用的移動設備訪問時,永遠不會為最流行的(當前為Firefox)瀏覽器編寫內容,甚至在需要時編寫自定義MIME類型也很簡單。

IMO這樣做並不是純粹出於編碼人員的懶惰,但是並非所有站點都是由專業的開發人員團隊開發的,他們都擁有樣式專家。 同樣,在Rails以外的語言中,它可能不是那么簡單。 抱歉,我對PHP不太了解,所以這可能不是一個合適的答復

我認為,從normalize.css開始,並有一個基本樣式表開始,根據需要覆蓋基本樣式通常可以確保設置適當的后備。 如果您確實需要它,則可以進行一些媒體查詢,並且功能檢測可以走很長一段路。

您不應以瀏覽器為基礎的原因之一是因為主要搜索引擎(例如Google和Yahoo)禁止為不同的瀏覽器顯示不同的內容。 GoogleBot可以檢測到不同的CSS和HTML,您的搜索排名可能會很差。 另外,如果您使用任何廣告服務,則可能會因顯示各種內容而違反其合同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM