全國服務熱線:
0791-88196636

南昌莫非網(wǎng)絡科技:Netscape Navigator、Internet Explorer、Gecko用戶代理字符串的歷史

 二維碼 45748
發(fā)表時間:2020-12-09 10:27作者:南昌莫非網(wǎng)絡科技公司來源:南昌莫非網(wǎng)絡科技公司網(wǎng)址:http://what-ismyip.com

南昌莫非網(wǎng)絡科技:Netscape Navigator、Internet Explorer、Gecko用戶代理字符串的歷史.

用戶代理檢測通過檢測用戶代理字符串來確定實際使用的瀏覽器。在每一次HTTP請求過程中,用戶代理字符串是作為響應首部發(fā)送的,而且該字符串可以通過JavaScript的navigator.userAgent屬性訪問。在服務器端,通過檢測用戶代理字符串來確定用戶使用的瀏覽器是一種常用而且廣為接受的做法。而在客戶端,用戶代理檢測一般被當作一種萬不得已才用的做法,其優(yōu)先級排在能力檢測和(或)怪癖檢測之后。


提到與用戶代理字符串有關(guān)的爭議,就不得不提到電子欺騙(spoofing)。所謂電子欺騙,就是指瀏覽器通過在自己的用戶代理字符串加入一些錯誤或誤導性信息,來達到欺騙服務器的目的。要弄清楚這個問題的來龍去脈,必須從Web問世初期用戶代理字符串的發(fā)展講起。


用戶代理字符串的歷史


HTTP規(guī)范(包括1.0和1.1版)明確規(guī)定,瀏覽器應該發(fā)送簡短的用戶代理字符串,指明瀏覽器的名稱和版本號。RFC 2616(即HTTP l.1協(xié)議規(guī)范)是這樣描述用戶代理字符串的:


“產(chǎn)品標識符常用于通信應用程序標識自身,由軟件名和版本組成。使用產(chǎn)品標識符的大多數(shù)領域也允許列出作為應用程序主要部分的子產(chǎn)品,由空格分隔。按照慣例,產(chǎn)品要按照相應的重要程度依次列出,以便標識應用程序?!?/p>


上述規(guī)范進一步規(guī)定,用戶代理字符串應該以一組產(chǎn)品的形式給出,字符串格式為:標識符/產(chǎn)品版本號。但是,現(xiàn)實中的用戶代理字符串則絕沒有如此簡單。


1.早期的瀏覽器


1993年,美國NCSA (National Center for Supercomputing Applications,國家超級計算機中心)發(fā)布了世界上**款Web瀏覽器Mosaic。這款瀏覽器的用戶代理字符串非常簡單,類似如下所示:


Mosaic/0.9


盡管這個字符串在不同操作系統(tǒng)和不同平臺下會有所變化,但其基本格式還是簡單明了的。正斜杠前面的文本表示產(chǎn)品名稱(有時候會出現(xiàn)NCSA Mosaic或其他類似字樣),而斜杠后面的文本是產(chǎn)品的版本號。


Netscape Communications公司介入瀏覽器開發(fā)領域后,遂將自己產(chǎn)品的代號定名為Mozilla(Mosaic Killer的簡寫,意即Mosaic殺手)。該公司**個公開發(fā)行版,Netscape Navigator2的用戶代理字符串具有如下格式:


Mozilla/版本號[語言](平臺;加密類型)


Netscape在堅持將產(chǎn)品名和版本號作為用戶代理字符串開頭的基礎上,又在后面依次添加了下列信息:


口語言:即語言代碼,表示應用程序針對哪種語言設計;


口平臺:即操作系統(tǒng)和(或)平臺,表示應用程序的運行環(huán)境;


口加密類型:即安全加密的類型??赡艿闹涤蠻(128位加密)、I (40位加密)和N(未加密)。


典型的Netscape Navigator 2的用戶代理字符串如下所示:


Mozilla/2. 02 [ fr] (WinNT; 工)


這個字符串表示瀏覽器是Netscape Navigator 2.02.為法語國家編譯,運行在Windows NT平臺下,加密類型為40位。那個時候,通過用戶代理字符串中的產(chǎn)品名稱,至少還能夠輕易地確定用戶使用的是什么瀏覽器。


2. Netscape Navigator 3和Internet Explorer 3


1996年,Netscape Navigator 3發(fā)布,隨即超越Mosaic成為當時***的Web瀏覽器。而用戶代理字符串只作了一些小的改變,刪除了語言標記,同時允許添加操作系統(tǒng)或系統(tǒng)使用的CPU等可選信息。于是,格式變成如下所示:


Mozilla/版本號(平臺;加密類型[j操作系統(tǒng)或CPU說明])


運行在Windows系統(tǒng)下的Netscape Navigator 3的用戶代理字符串大致如下:


Mozilla/3.0 (Win95;U)


這個字符串表示Netscape Navigator 3運行在Windows 95中,采用了128位加密技術(shù)??梢?,在Windows系統(tǒng)中,字符串中的操作系統(tǒng)或CPU說明被省略了。


Netscape Navigator 3發(fā)布后不久,微軟也發(fā)布了其**款贏得用戶廣泛認可的Web瀏覽器,即Internet Explorer 3。由于Netscape瀏覽器在當時占絕對市場份額,許多服務器在提供網(wǎng)頁之前都要專門檢測該瀏覽器。如果用戶通過IE打不開相關(guān)網(wǎng)頁,那么這個新生的瀏覽器很可能就會夭折。于是,微軟決定將IE的用戶代理字符串修改成兼容Netscape的形式,結(jié)果如下:


Mozilla/2.0(compatible; MSIE版本號;操作系統(tǒng))


例如,Windows 95平臺下的Internet Explorer 3 .02帶有如下用戶代理字符串:


Mozilla/2.0 (compatible; MSIE 3.02; Windows 95)


由于當時的大多數(shù)瀏覽器嗅探程序只檢測用戶代理字符串中的產(chǎn)品名稱部分,結(jié)果IE就成功地將自己標識為Mozilla,從而偽裝成Netscape Navigator。微軟的這一做法招致了很多批評,因為它違反了瀏覽器標識的慣例。更不規(guī)范的是,IE將真正的瀏覽器版本號插入到了字符串的中間。


字符串中另外一個有趣的地方是標識符Mozilla 2.0(而不是3.0)。畢竟,當時的主流版本是3.0,改成3.0應該對微軟更有利才對。但真正的謎底到現(xiàn)在還沒有揭開——但很可能只是人為疏忽所致。


3. Netscape Communicator 4和Internet Explorer 4-8


1997年8月,Netscapte Communicator4發(fā)布(這一版將瀏覽器名字中的Navigator換成了Communicator)。Netscape繼續(xù)遵循了第3版時的用戶代理字符串格式:Mozilla/版本號(平臺;加密類型[;操作系統(tǒng)或CPU說明])


因此,Windows 98平臺中第4版的用戶代理字符串如下所示:


Mozilla/4.O(Win98;工)


Netscape在發(fā)布補丁時,子版本號也會相應提高,用戶代理字符串如下面的4.79版所示:


Mozilla/4. 79 (Win98;工)


但是,微軟在發(fā)布Internet Explorer4時,順便將用戶代理字符串修改成了如下格式:


Mozilla/4.O(compatible; MSIE版本號j操作系統(tǒng))


換句話說,對于Windows 98中運行的IE4而言,其用戶代理字符串為:


Mozilla/4.O(compatible; MSIE 4.O;Windows 98)


經(jīng)過此番修改,Mozilla版本號就與實際的IE版本號一致了,為識別它們的第四代瀏覽器提供了方便。但令人遺憾的是,兩者的一致性**于這一個版本。在Internet Explorer 4.5發(fā)布時(只針對Macs),雖然Mozilla版本號還是4,但IE版本號則改成了如下所示:


Mozilla/4.O (compatible; MSIE 4.5;Mac_PowerPC; Trident/4.O)


此后,lE的版本一直到7都沿襲了這個模式。而IE 8的用戶代理字符串中添加了呈現(xiàn)引擎(Trident)


的版本號①:


Mozilla/4.O(compatible; MSIE 8.0;Windows NT 5 .1; Trident/4.O)


至于IE的后續(xù)版本會不會修改Mozilla版本號,目前還無從知曉;南昌網(wǎng)頁設計公司技術(shù)人員認為,改不改這個版本號,意義已經(jīng)不大了(誰也不能指望通過它得到什么可靠的結(jié)論)。


4.Gecko


Gecko是Firefox的呈現(xiàn)引擎。當初的Gecko是作為通用Mozilla瀏覽器的一部分開發(fā)的,而**個采用Gecko引擎的瀏覽器是Netscape 6。為Netscape 6編寫的一份規(guī)范中規(guī)定了未來版本中用戶代理字符串的構(gòu)成。這個新格式與4.x版本中相對簡單的字符串相比,有著非常大的區(qū)別,如下所示:


Mozilla/Mozilla版本號(平臺;加密類型;操作系統(tǒng)或CPU;語言;預先發(fā)行版本)


Gecko/Gecko版本號應用程序或產(chǎn)品/應用程序或產(chǎn)品版本號


這個明顯復雜了很多的用戶代理字符串中蘊含很多新想法。下表列出了字符串中各項的用意。


字符串項 必需嗎 說 明


Mozilla版本號 是 Mozilla的版本號平臺 是 瀏覽器運行的平臺。可能的值包括Windows. Mac和XII(指Unix的X窗口系統(tǒng))


加密類型是加密技術(shù)的類型:U表示128位、I表示40位、N表示未加密操作系統(tǒng)或CPU 是 瀏覽器運行的操作系統(tǒng)或計算機系統(tǒng)使用的CPU。在Windows平臺中,這一項指Windows的版本(如WinNT、Win95,等等)。如果平臺是Macintosh.這一項指CPU(針對PowerPC的68K、PPC,或


Maclntel)。如果平臺是Xll,這一項是Unix操作系統(tǒng)的名稱,與使用Unix命令uname- sm得到的名稱相同語言是瀏覽器設計時所針對的目標用戶語言預先發(fā)行版本 否 最初用于表示Mozilla的預先發(fā)行版本,現(xiàn)在則用來表示Gecko呈現(xiàn)引擎的版本號Gecko版本號 是 Gecko呈現(xiàn)引擎的版本號,但由yyyymmdd格式的日期表示應用程序或產(chǎn)品 否 使用Gecko的產(chǎn)品名??赡苁荖etscape、Firefox,等等


應用程序或產(chǎn)品版本號 否 應用程序或產(chǎn)品的版本號;用于區(qū)分Mozilla版本號和Gecko版本號為了幫助讀者更好地理解Gecko的用戶代理字符串,下面我們來看幾個從基于Gecko的瀏覽器中取得的字符串。


Windows XP下的Netscape 6.21:


Mozilla/5.O(Windows;U;Windows NT 5 .1; en-US; rv:0.9.4)Gecko/20011128 Netscape6/6.2.1


Linux下的SeaMonkey l.la:


Mozilla/5.0(X11;U;Linux i686; en-US; rv:1.8.1b2) Gecko/20060823 SeaMonkey/l. la


Windows XP下的Firefox 2.0.0.11:


Mozilla/5.0(Windows;U;Windows NT 5.1;en-US; nr:1.8.1.ll) Gecko/20071127 Firef ox/2.0.0.11


Mac OSX下的Camin0 1.5.1:


Mozilla/5.0(Macintosh;U;Intel Mac Os X;en; nr:1.8.1.6)Gecko/2 0070809 Camino/l.5.1


以上這些用戶代理字符串都取自基于Gecko的瀏覽器(只是版本有所不同)。南昌網(wǎng)絡公司技術(shù)員認為很多時候,檢測特定的瀏覽器還不如搞清楚它是否基于Gecko更重要。每個字符串中的Mozilla版本都是5.O,自從**個基于Gecko的瀏覽器發(fā)布時修改成這個樣子,至今就沒有改變過;而且,看起來以后似乎也不會有什么變化。


企業(yè)新聞
關(guān)于南昌莫非網(wǎng)絡科技公司2022年元旦放假安排通知.元旦:1月1日(星期六)至1月3號(星期一)放假,共計三天(無調(diào)休),1月4日(星期二)上班。
關(guān)于南昌莫非網(wǎng)絡科技公司2021年國慶節(jié)放假安排通知。根據(jù)《國務院辦公廳關(guān)于2021年部分節(jié)假日安排的通知》(國辦發(fā)明電〔2020〕27號),結(jié)合我單位工作實際情況,現(xiàn)就2021年國慶放假的有關(guān)事項安排如下。
南昌莫非網(wǎng)絡科技公司2021年中秋節(jié)放假通知.一、假期從:2021年09月19日到2021年09月21日結(jié)束,假期共3天(9月18日正常上班,9月26日正常休息)。二、如有緊急情況,請各位同仁及時配合相關(guān)部門主管人員把事情處理妥善。做好防火、防盜工作并督促各部門關(guān)好辦公區(qū)域的門、窗等。
根據(jù)《國務院辦公廳關(guān)于2021年部分節(jié)假日安排的通知》(國辦發(fā)明電〔2020〕27號),結(jié)合我單位工作實際情況,現(xiàn)就2021年端午節(jié)放假的有關(guān)事項安排如下:一、放假時間:2021年6月12日(星期六)至2021年6月14日(星期一),共放假3天。
南昌莫非網(wǎng)絡科技公司2021年五一勞動節(jié)放假通知.現(xiàn)就2021年五一勞動節(jié)放假的有關(guān)事項安排如下:一、放假時間,2021年5月1日(星期六)至2020年5月5日(星期三),共放假5天。4月25日(星期日)上班,5月6日(星期四)正常上班。
南昌莫非網(wǎng)絡科技公司2021年清明節(jié)放假通知.2021年4月3日(星期六)-2021年4月5日(星期一)放假,共3天。4月6日(星期二)正常上班。放假期間,各項業(yè)務照常運行,售后問題您可以直接相關(guān)負責人提交服務單,技術(shù)人員將在12小時之內(nèi)處理。
關(guān)于南昌莫非網(wǎng)絡科技公司2021年春節(jié)放假安排通知.一、春節(jié)放假時間:2021年2月5日(農(nóng)歷臘月二十四)至2021年2月18日(農(nóng)歷正月初七)放假,共13天,2月19日(星期五)開始上班,2月21日星期日(農(nóng)歷正月初十)恢復正常上班。由于疫情,假期時間可能會有所變化,具體以通知為準。
關(guān)于南昌莫非網(wǎng)絡科技公司2021年01月01日元旦放假通知。一、放假時間:2021年1月1日(星期五)至2021年1月3日(星期日)放假,共3天;2021年1月4日(星期一)正常上班。公司放假期間如有相關(guān)業(yè)務及服務事宜敬請撥打我司24小時服務熱線:0791-8819-6636或咨詢客服QQ:2401077293,可隨時與我司進行聯(lián)系。
南昌莫非網(wǎng)絡科技公司2020年中秋節(jié)+國慶節(jié)放假通知。根據(jù)《國務院辦公廳關(guān)于2020年部分節(jié)假日安排的通知》,為了讓大家度過一個充實、平安的假期,現(xiàn)把2020年中秋國慶放假時間及溫馨提示通知如下!
南昌莫非網(wǎng)絡科技公司2020年五一放假通知.在過去的歲月里,南昌莫非網(wǎng)絡科技公司與新老客戶一直保持著愉快的合作,這離不開大家的鼎立支持和幫助。在未來的日子里還需要更多朋友們的支持與幫助,希望你們能始終如一的支持南昌莫非網(wǎng)絡科技,并提出您寶貴的意見及建議。
南昌莫非網(wǎng)絡科技公司2020年春節(jié)寒假放假安排通知。南昌莫非網(wǎng)絡科技公司提前祝全國合作伙伴新春快樂、闔家幸福!預祝全體員工春節(jié)快樂!
南昌莫非網(wǎng)絡科技公司2020年元旦節(jié)放假安排通知.元旦將至,南昌莫非網(wǎng)絡科技公司預祝全體員工元旦快樂!現(xiàn)將2020年元旦節(jié)放假安排通告如下:一、放假時間:2020年1月1日,共1天。
地區(qū)做網(wǎng)站導航
網(wǎng)站建設行業(yè)方案
網(wǎng)站維護知識
網(wǎng)站制作常見問題
SEO網(wǎng)站優(yōu)化教程
踏上云端,轉(zhuǎn)型升級融入互聯(lián)網(wǎng)時代,現(xiàn)在就聯(lián)系我們吧!
——      我們時刻為你提供更多優(yōu)質(zhì)互聯(lián)網(wǎng)技術(shù)服務      ——
姓名:
*
聯(lián)系方式:
*
咨詢項目:
內(nèi)容:
*
在線留言
關(guān)于我們:南昌莫非文化傳媒有限公司(簡稱:莫非傳媒)專注于網(wǎng)站建設,網(wǎng)站SEO優(yōu)化,小程序制作。提供全方位用戶體驗規(guī)劃,品牌形象設計服務。為每一位企業(yè)客戶的成長、騰飛助力!        網(wǎng)站建設、網(wǎng)站設計、網(wǎng)站制作、網(wǎng)站開發(fā),就選網(wǎng)站建設公司-南昌莫非傳媒!
掃一掃微信便捷交流
|
|
|
|
|
|
|
|
|
|
|
|
|
地址:江西省南昌市西湖區(qū)洪城路6號國貿(mào)廣場A座巨豪峰
業(yè)務咨詢  :  
272482065
售后服務 :
2401077293
服務熱線:
0791-88196636
______________________________________________________________________________________________________________________________________________________________________________________________________
安徽省| 盈江县| 大埔区| 峨边| 本溪| 伊川县| 鄯善县| 崇明县| 瓮安县| 托里县| 海淀区| 唐海县| 刚察县| 泸西县| 长葛市| 南安市| 松原市| 肇源县| 庆元县| 富源县| 敖汉旗| 锡林浩特市| 金塔县| 虎林市| 北安市| 太仓市| 永城市| 垫江县| 平果县| 瑞安市| 南漳县| 黎平县| 噶尔县| 海阳市| 祁东县| 富裕县| 蕉岭县| 威信县| 东源县| 东莞市| 谷城县|