搜索
首页后端开发php教程既然JSP适合做大型网站,为什么百度主页还是PHP写的?

总的来看Java在技术方面远远超过PHP,不考虑成本问题(大公司应该承受的起),为什么百度首页不用JSP写?及时搜索不需要分布式么?而且在输入的时候会自动加载一些结果什么的。

回复内容:

能把这本书发出来吗?
我要把这个出版社拉黑。 泻药。
首先我们来看看百度首页是不是真的用的是php,baidu,com/index.php无疑是可以打开的,但是我们也知道,可以通过对HTTP服务软件层面进行路由设置,使得这个地址实际解析到其他内容,比如静态文件或者是其他CGI处理的资源,比如伪静态的实现是将html路由到其他动态资源,比如php(考虑到缓存,也有可能是静态资源),所以单凭这个无法确定是否是php。
于是用chrome打开百度,

1291.png

1292.png

我们需要看的信息是红色框框出来的内容,首先我们看到Sever的值被设置成了bfe/1.0.8.14,http头中的server字段一般是http服务器的名称,比如知乎:
1293.png

Qnginx,猜测可能是魔改Nginx吧。百度的bfe,要么是自家产品,要么有可能也是改动了nginx之类的源代码,这个参见百度首页用的什么服务器?
那么我们再看看setcookie里面,设置的cookie内容。我们知道,一般php自身设置的cookie会有类似下面这样的字段:
1294.png

然而我们看看百度的:
1295.png

有很多以百度命名的Token字段,没有采用php自带的cookie,也看起来不像很多语言/框架自带的cookie,后文会讲。
我们再看看在百度首页的请求中有一个字段:
1296.png

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和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分页功能怎么实现jsp分页功能怎么实现Mar 04, 2024 pm 04:40 PM

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

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

​JSP是一种动态网页技术标准,其文件格式是在传统的网页HTML文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.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用户列

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.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),