- 主题:谁能给我讲讲网页程序的运行是怎么回事呢
就是网页程序的运行环境,比如linux下面的二进制程序,加载到系统中后,有一个进程与其对应,通过操作系统提供的各种系统调用与底层打交道,进程间可以通过ipc机制进行通信,有点程序还是多线程的,变量在线程之间又是共享的,那网页程序对应的运行环境具体是些啥呢,从没做过web开发,都不懂,见笑了,谢谢
--
FROM 116.54.4.*
你在浏览器里头输入了一个地址,按回车!
浏览器开始根据地址发出一个http请求,问问server结果如何
server的结果返回回来了,是一长串字符串,并告诉浏览器该按照html来解释
浏览器开始解释了,解释了一半,发现里头的东西需要额外的内容,比如外部的
css、javascript、图片、flash等文件,于是再次发出该发出的请求。
在此期间,有些javascript可能已经被运行,那么就运行了。
之后就是:
你按了某个按钮、点了某个link、鼠标、键盘发出了一些事件
那么对应的javascript事件响应函数被自动调用,做各种各样的事儿……
注意javascript目前在浏览器里头的实现都是单线程的(除了最新的Firefox3.5里头的worker)。javascript能用的各种“系统调用”都是浏览器提供好的。
呃,大概这样?
【 在 banyou (板油) 的大作中提到: 】
: 就是网页程序的运行环境,比如linux下面的二进制程序,加载到系统中后,有一个进程与其对应,通过操作系统提供的各种系统调用与底层打交道,进程间可以通过ipc机制进行通信,有点程序还是多线程的,变量在线程之间又是共享的,那网页程序对应的运行环境具体是些啥呢,从
--
FROM 61.135.255.83
可以拍一部3D动画叫《http总动员》了。
【 在 sly9 (= =b) 的大作中提到: 】
: 你在浏览器里头输入了一个地址,按回车!
: 浏览器开始根据地址发出一个http请求,问问server结果如何
: server的结果返回回来了,是一长串字符串,并告诉浏览器该按照html来解释
: ...................
--
FROM 218.18.187.*
嗯,你说的这部分应该算是浏览器这边的吧,那服务器那边对各种语言写的服务器端代码是如何处理的呢,比如php,是不是有个php解释引擎来解释php网页?这个解释引擎和server是如何相互作用的呢?jsp、asp呢
【 在 sly9 (= =b) 的大作中提到: 】
: 你在浏览器里头输入了一个地址,按回车!
: 浏览器开始根据地址发出一个http请求,问问server结果如何
: server的结果返回回来了,是一长串字符串,并告诉浏览器该按照html来解释
: ...................
--
FROM 116.54.4.*
应该相当于一个翻译机构,用户输入相应文件地址并请求返回客户端显示,相当向这个翻译机构发出译文指令。翻译机构把这个文件翻译成客户端的浏览器识别的文本并传输到客户端显示。
所有的语言基本上都是这样吧。
【 在 banyou (板油) 的大作中提到: 】
: 嗯,你说的这部分应该算是浏览器这边的吧,那服务器那边对各种语言写的服务器端代码是如何处理的呢,比如php,是不是有个php解释引擎来解释php网页?这个解释引擎和server是如何相互作用的呢?jsp、asp呢
--
FROM 218.18.187.*
且用php举例:
一般来说,绝大多数server跟外来客户谈话的都是apache、IIS之类的http server,他们听着80端口,就是那青楼里头的乌龟,来个客人就要送到合适的地方,比如:
请求的地址按照规则看来是个文件,那么就给他个文件的内容打发走
请求的地址按照规则应该分发到login.php这个姑娘那儿,那就敲门问妈妈(php引擎),“请让login.php这姑娘接客”
那么login.php就必须起身处理事务,处理好之后,要把结果告诉给apache,apache再告诉客人。。
asp没人用了,但意思一样...
【 在 banyou (板油) 的大作中提到: 】
: 嗯,你说的这部分应该算是浏览器这边的吧,那服务器那边对各种语言写的服务器端代码是如何处理的呢,比如php,是不是有个php解释引擎来解释php网页?这个解释引擎和server是如何相互作用的呢?jsp、asp呢
--
FROM 61.135.255.83
那php有连接数据库,读写本地文件等等的操作,这些操作和一个C语言程序里面的对应操作一样么,php的执行是线程还是进程里面呢,php相互之间有类似进程间通信的机制么
【 在 sly9 (= =b) 的大作中提到: 】
: 且用php举例:
: 一般来说,绝大多数server跟外来客户谈话的都是apache、IIS之类的http server,他们听着80端口,就是那青楼里头的乌龟,来个客人就要送到合适的地方,比如:
: 请求的地址按照规则看来是个文件,那么就给他个文件的内容打发走
: ...................
--
FROM 116.54.4.*
【 在 banyou (板油) 的大作中提到: 】
: 那php有连接数据库,读写本地文件等等的操作,这些操作和一个C语言程序里面的对应操作一样么,php的执行是线程还是进程里面呢,php相互之间有类似进程间通信的机制么
基本都一样……
php之间应该没有直接的进程通信之类的机制吧,但有session,来让你保持、传递数据……
php本身是有binary可以直接执行的,比如直接在命令行里头跑php的代码,这时候肯定是单独的进程了
但在网页里头跑的话一般不会直接对每个php都起一次进程,太贵了,都是使用与相应的http server对应的模块来解释php文件的。。
--
FROM 123.114.32.240