首頁 > 後端開發 > php教程 > 既然JSP適合做大型網站,為什麼百度首頁還是PHP寫的呢?

既然JSP適合做大型網站,為什麼百度首頁還是PHP寫的呢?

PHP中文网
發布: 2016-07-30 14:02:13
原創
4808 人瀏覽過

總的來看Java在技術方面遠超過PHP,不考慮成本問題(大公司應該承受的起),為什麼百度首頁不用JSP寫?及時搜尋不需要分佈式麼?而且在輸入的時候會自動載入一些結果什麼的。

回覆內容:

能把這本書發出來嗎?
我要把這個出版社拉黑。 瀉藥。
首先我們來看看百度首頁是不是真的用的是php,baidu,com/index.php無疑是可以打開的,但是我們也知道,可以透過對HTTP服務軟體層面進行路由設置,使得這個位址實際解析到其他內容,例如靜態檔案或是其他CGI處理的資源,例如偽靜態的實作是將html路由到其他動態資源,例如php(考慮到快取,也有可能是靜態資源),所以單憑這個無法確定是否是php。
於是用chrome打開百度,

既然JSP適合做大型網站,為什麼百度首頁還是PHP寫的呢?

既然JSP適合做大型網站,為什麼百度首頁還是PHP寫的呢?

我們需要看的信息是紅色框框出來的內容,首先我們看到Sever的值被設置成了bfe/1.0.8.14,http頭中的server字段一般是http伺服器的名稱,例如知乎:
既然JSP適合做大型網站,為什麼百度首頁還是PHP寫的呢?

Qnginx,猜測可能是魔改Nginx吧。百度的bfe,要嘛是自家產品,要嘛有可能也是改動了nginx之類的源碼,這個參見百度首頁用的什麼伺服器?
那我們再看setcookie裡面,設定的cookie內容。我們知道,一般php自身設定的cookie會有類似下面這樣的字段:
既然JSP適合做大型網站,為什麼百度首頁還是PHP寫的呢?

然而我們看看百度的:
既然JSP適合做大型網站,為什麼百度首頁還是PHP寫的呢?

有很多以百度命名的Token字段,沒有採用php自帶的cookie,也看起來不像很多語言/框架自備的cookie,後文會講。
我們再看在百度首頁的請求中有一個字段:
既然JSP適合做大型網站,為什麼百度首頁還是PHP寫的呢?

HPHP,這是HHVM,如果不是百度使用代

理或者在HTTP伺服器層面上修改頭或者修改HHVM(百度應該也不會這麼閒的蛋痛去改一個不是機密的東西),那應該就是用PHP了。那我們就解釋一下為什麼不用預設的(預設的cookie會出現PHPSESSID的欄位)

session_start()
登入後複製

facebook還是PHp寫的呢,新浪微博和騰訊網也是。知乎還是用Python呢 不談題主貼的資料準確與否
百度首頁的PHP只是做結果渲染,搜尋引擎本身應該不是基於PHP的 我勒個擦。 。
身為一個百度員工,半夜看到這個問題,瞬間精神了。 。
一個是笑的,一個是內心深處忍不住深深的吐槽之情。 。
你是學生吧?還是說沒有接觸過超大型的專案。你有機會去大公司,接觸一下,就明白這個問題真的好蠢。 。
最近公司很招黑,我還是匿名吧,懶得跟人吵架。

首先,php是可以做頁面渲染的,但是你但凡搞過框架就應該知道,這個url請求會經過分發,分發到哪裡就有很大的自主操作空間了。

首先,中間分發這個肯定不是你想像中的那麼簡單,每天上億次請求,肯定會有各種cache,全國各地集群分佈,等等。
況且,為了加快首頁載入速度,肯定是要改成C優化的。

然後,你輸入的時候,就分發到了對應的檢索叢集上。
這個的程式碼是C++,為什麼?因為我親自改過。 。
這裡又分成很多模組。 。

舉個例子,一個單字從你輸入到搜尋框,到最後取出數據,中間的過程,說簡單的確很簡單。 。

就是爬蟲抓取數據,然後根據這些數據建立索引嘛。
問題是,每個細節做到最好,這複雜度就很高了。

分詞的話,你如何能夠更準確?直接用個開源函式庫?開玩笑呢你?就這個最好就要一個專業的團隊去負責,還是偏研究性的,得招一堆博士,研究生去搞。
好了,分好詞了,我們要取索引了。
如何在毫秒內,在千億的結果中,找到對應的數據?
然後給他們排序,回傳使用者想要的結果?聽起來是不是很複雜?

其實,這個說起來也不麻煩,倒排拉鍊嘛,然後做好cache,其實百分之九十的搜尋都是百分之十的單字。
不過資料量有點大,所以這個索引可能全部放不到內存,部分放到硬碟上唄,問題是硬碟上速度慢,我們可否做點優化?

然後如何選擇最適合的給使用者?這個策略上又有不少優化點,做好了又得一批人。

這還只是檢索。
爬蟲那一塊,我們每天爬下來的資料超出一般人的想像,如何有效率的爬,好提供給檢索端更可靠的資料。
這個又是一堆人搞。

但是問題又來了,你發現資料量太大了,這資料怎麼存?怎麼更好的管理?
這不都是要花大量的人力去搞。 。

哦,還有鳳巢,這天天被你們黑的。
因為關係到錢,也是投入了大量的人力去做各種各樣的策略,數據優化。

所以,看到你這個問題。 。 。 。
真的是覺得,什麼鬼,去接觸下一個超大等級的專案。
你會發現,基本上都是在某個時刻就有一個最適應的語言,那就去用就好了。
百度一開始就幾個人,用戶有幾十萬就不錯了,趕緊上個網站有的用就可以了,還考慮啥效率。後端索引,一開始沒有hadoop的時候,機器維護老有問題,那就派幾個人天天手工維護嗆。
然後,後期發現php不好用了,就想想優化唄。
反正業務坐上去了,也有錢了,請一堆牛人使勁折騰,肯定能想出辦法。

當然,搜尋引擎從技術方面的確還是很有門檻的,現在各種框架,雲端運算成熟了,好做了很多,當年做起來的確還是有很大的技術壁壘的。
至少比搭網站難度高上幾十倍。

但語言絕對不是最大的問題。 。

你會發現,你竟然還在這裡糾結語言,是不是很蠢? php提供的資料庫介面不統一。 。 。 。 。 。多少年前的事了。 。 。 pdo一出就早解決了。題主截取的很多觀點都是比較片面和老舊了,現在的PHP綜合來說已經是WEB業務的霸主了,jsp在大型業務雖然有優勢,但是總體來說php在很多方面已經能和它平分秋色。還有。 。 。是誰告訴你百度的搜尋引擎是PHP了。 。 。 首頁就是一層皮,用什麼寫都差距不大。搜尋當然是分散式的,但是都是以服務方式提供,和首頁也沒有什麼關係。至於自動載入些結果什麼的,也是js發個請求,後台也是服務方式提供的。至於後台的服務,不知道百度具體是怎麼實現的,有各種語言和方案可以選擇,選個合適自己的就好。搜尋的確有很多方案是基於java實現的,但是不表示離了java就搞不了。 php和jsp也不是什麼升級替代關係,只能說各有所長,php之所以顯得弱雞,只是國內寫php的人大部分弱雞。即使facebook切到hhvm之前的php,也能輕鬆支撐每天10億+請求,用的伺服器也不是特別多。沒有具體數據,但有人推測fb當時的php單機qps在3000-5000左右,並不比jsp單機有數量級差距。我任職某司php單機峰值在700qps左右,主要是程式碼寫的混亂,效能太差。而淘寶的分享說明,某些php業務集群裡的單機qps只有200-300。這只能說明是人的問題。最後建議多看看架構方面的文章,這類問題的答案自然蘊含其中。 你認為百度搜尋引擎就一個首頁麼 PHP是世界上最美麗的語言 天啊~

以上就是既然JSP適合做大型網站,為什麼百度首頁還是PHP寫的?的內容,更多相關內容請關注PHP中文網(www.php.cn)!


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板