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

總的來看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)!


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
使用數據庫存儲會話的優點是什麼?使用數據庫存儲會話的優點是什麼?Apr 24, 2025 am 12:16 AM

使用數據庫存儲會話的主要優勢包括持久性、可擴展性和安全性。 1.持久性:即使服務器重啟,會話數據也能保持不變。 2.可擴展性:適用於分佈式系統,確保會話數據在多服務器間同步。 3.安全性:數據庫提供加密存儲,保護敏感信息。

您如何在PHP中實現自定義會話處理?您如何在PHP中實現自定義會話處理?Apr 24, 2025 am 12:16 AM

在PHP中實現自定義會話處理可以通過實現SessionHandlerInterface接口來完成。具體步驟包括:1)創建實現SessionHandlerInterface的類,如CustomSessionHandler;2)重寫接口中的方法(如open,close,read,write,destroy,gc)來定義會話數據的生命週期和存儲方式;3)在PHP腳本中註冊自定義會話處理器並啟動會話。這樣可以將數據存儲在MySQL、Redis等介質中,提升性能、安全性和可擴展性。

什麼是會話ID?什麼是會話ID?Apr 24, 2025 am 12:13 AM

SessionID是網絡應用程序中用來跟踪用戶會話狀態的機制。 1.它是一個隨機生成的字符串,用於在用戶與服務器之間的多次交互中保持用戶的身份信息。 2.服務器生成並通過cookie或URL參數發送給客戶端,幫助在用戶的多次請求中識別和關聯這些請求。 3.生成通常使用隨機算法保證唯一性和不可預測性。 4.在實際開發中,可以使用內存數據庫如Redis來存儲session數據,提升性能和安全性。

您如何在無狀態環境(例如API)中處理會議?您如何在無狀態環境(例如API)中處理會議?Apr 24, 2025 am 12:12 AM

在無狀態環境如API中管理會話可以通過使用JWT或cookies來實現。 1.JWT適合無狀態和可擴展性,但大數據時體積大。 2.Cookies更傳統且易實現,但需謹慎配置以確保安全性。

您如何防止與會議有關的跨站點腳本(XSS)攻擊?您如何防止與會議有關的跨站點腳本(XSS)攻擊?Apr 23, 2025 am 12:16 AM

要保護應用免受與會話相關的XSS攻擊,需採取以下措施:1.設置HttpOnly和Secure標誌保護會話cookie。 2.對所有用戶輸入進行輸出編碼。 3.實施內容安全策略(CSP)限制腳本來源。通過這些策略,可以有效防護會話相關的XSS攻擊,確保用戶數據安全。

您如何優化PHP會話性能?您如何優化PHP會話性能?Apr 23, 2025 am 12:13 AM

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显著提升应用在高并发环境下的效率。

什麼是session.gc_maxlifetime配置設置?什麼是session.gc_maxlifetime配置設置?Apr 23, 2025 am 12:10 AM

theSession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceisesneededeededeedeedeededto toavoidperformance andunununununexpectedLogOgouts.3)

您如何在PHP中配置會話名?您如何在PHP中配置會話名?Apr 23, 2025 am 12:08 AM

在PHP中,可以使用session_name()函數配置會話名稱。具體步驟如下:1.使用session_name()函數設置會話名稱,例如session_name("my_session")。 2.在設置會話名稱後,調用session_start()啟動會話。配置會話名稱可以避免多應用間的會話數據衝突,並增強安全性,但需注意會話名稱的唯一性、安全性、長度和設置時機。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),