每天我们都在上网,每天我们都在浏览无数多的网页,每天我们都在用浏览器跟服务器打着交道,当我们在地址栏中输入地址,浏览器立即会呈现给我们想要的内容,那么到底浏览器跟服务期间发生了什么呢?
如上图所示:
1、浏览器跟服务器之间是通过套接字来通信的,在服务器端会有一个监听套接字,专门用来监听浏览器端的请求,当服务器端的监听套接字(Socket)每监听到一个浏览器端请求时都会创建一个新的通信套接字来跟指定的浏览器进行通信,而监听套接字会继续监听其他浏览器的请求。
2、新创建的这个通信套接字会分析浏览器的请求报文,当请求一个静态页面(html、htm、css、js等)时,服务器就会从数据库中取出浏览器所请求的页面直接不做任何处理返回给浏览器。
而当通信套接字发现浏览器请求的是动态页面(aspx、ashx、jsp、phs等)时,服务器会从数据库中取出指定的页面并做相应的加工之后再返回给浏览器。
上面描述的就是对用户封装好的浏览器跟服务器之间的通信过程,其实中间的细节还有好多(套接字是如何产生的、请求报文是如果分析的、对于动态页面是怎么加工的……),上面描述的只是一些大概路径而已。