搜尋
首頁後端開發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
jsp是属于前端还是后端jsp是属于前端还是后端Jan 28, 2023 pm 06:23 PM

jsp属于后端。jsp的本质是一种servlet,而servlet又是服务器端的java应用程序,所以jsp是属于后端的技术。JSP部署于网络服务器上,可响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java作为脚本语言,为用户HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。

SpringBoot项目如何整合JSPSpringBoot项目如何整合JSPMay 12, 2023 pm 07:40 PM

新建好springboot项目以后目录如下:第一步:在项目的pom文件中加入配置jsp所需要的jar包代码:org.apache.tomcat.embedtomcat-embed-jasperprovided第二步:在main路径下新建目录webapp,在webapp下新建路径WEB-INF,在WEB-INF下新建路径jsp,在这个路径下放置我们要使用的jsp文件第三步:在主配置文件中配置jsp文件的访问路径和后缀代码:spring.mvc.view.prefix=/WEB-INF/jsp/sp

jsp分页功能怎么实现jsp分页功能怎么实现Mar 04, 2024 pm 04:40 PM

实现步骤:1、在JSP页面中引入JSTL标签库;2、从数据库中获取数据;3、对数据进行分页处理;4、在页面中显示分页导航条;5、根据当前页码和每页显示数量,从分页后的数据中获取对应的数据并显示在页面上即可。

jsp和html区别在哪jsp和html区别在哪Jan 09, 2024 am 10:46 AM

jsp和html区别:1、运行机制;2、用途;3、与Java的关系;4、功能;5、与后端的关系;6、速度;7、可维护性和扩展性;8、学习和使用的难易程度;9、文件后缀和识别工具;10、社区和支持;11、安全性。详细介绍:1、运行机制,HTML是一种标记语言,主要用于描述和定义网页的内容,它运行在客户端,由浏览器解释执行,JSP是一种动态网页技术,运行在服务器端等等。

如何用jsp+mysql实现网页的分页查询如何用jsp+mysql实现网页的分页查询May 30, 2023 pm 03:58 PM

一、实现分页查询的核心sql语句(1)查询数据库的记录总数的sql语句:selectcount(*)from+(表名);(2)每次查询的记录数的sql语句:其中:0是搜索的索引,2是每次查找的条数。select*from表名limit0,2;二、代码实现*上篇写过这两个类,DBconnection类:用于获取数据库连接,Author对象类。这两个类的代码点击连接查看。点击链接查看DBconnection类和Author对象类(1)登录页面:index.jsp。Inserttitlehere用户列

jsp是什么格式的文件jsp是什么格式的文件Jan 24, 2024 pm 04:01 PM

​JSP是一种动态网页技术标准,其文件格式是在传统的网页HTML文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。

Web开发的Java技术栈:了解Java EE、Servlet、JSP、Spring等常用于Web开发的技术Web开发的Java技术栈:了解Java EE、Servlet、JSP、Spring等常用于Web开发的技术Dec 26, 2023 pm 02:29 PM

JavaWeb开发技术栈:掌握JavaEE、Servlet、JSP、Spring等用于Web开发的技术随着互联网的迅速发展,在当今的软件开发领域,Web应用的开发已经成为一种非常重要的技术需求。而Java作为一种广泛应用的编程语言,其在Web开发领域也有着重要的地位。JavaWeb开发技术栈涉及多项技术,如JavaEE、Servlet、JSP、Spr

jsp中iframe是什么jsp中iframe是什么Aug 24, 2023 pm 04:02 PM

jsp中iframe是一种用于嵌入其他网页或文档的HTML标签,可以实现页面的分割、动态加载、异步加载和跨域访问等功能。它为开发人员提供了更多的灵活性和交互性,可以提高网页的可用性和用户体验。

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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!