第一步:用户输入网址并点击Go后,浏览器就会将网址中的域名发送到电脑网络设置中指定的DNS服务器,然后该DNS服务器返回解析后的IP地址。
第二步:浏览器得到要访问网站的服务器IP地址后,就会访问该服务器IP的80端口建立socket连接,并通过socket的send()方法将用户输入的网址发送给服务器。浏览器就相当于一个SOCKET网络程序的客户端Client程序。
第三步:服务器端一直运行着一个监听80端口的软件,这个服务器软件一般称为WebServer。(WebServer的本质:就是在服务器电脑上一直运行着的一个SOCKET网络程序的Server端,一直监听80端口。)这样WebServer通过socket的recv()方法得到用户浏览器send过来的网址。
第四步:如果用户输入的网址类似http://www.renrenstudy.com,这里在域名后没有输入某个具体页面,这样服务器就会按照服务器设置的默认文档顺序来寻找默认文档返回给用户,一般的默认文档就是index.html,index.asp,index.jsp,index.aspx,index.php,default.html,default.asp……。如果域名后加了具体某个页面的地址,例如http://www.renrenstudy.com/news.html,那么服务器就会去寻找网站根目录下是否有news.html文件,如果有则将文件内容返回给用户,也就是用户的浏览器。
第五步:浏览器对返回的html文件内容进行HTML语言解释,展示出网页。
为了便于说明,上面的五个步骤仅仅说明的是对网站静态页面的访问,也就是直接访问.html格式的文件。其实,网站动态页面更常见,也就是网址的后缀是.php, .asp, .aspx, .jsp等的页面。
php asp jsp aspx的出现原因:html文件只是个静态的文件,不能实时更新内容。这时候就需要一个能连接数据库的程序来动态生成html文件。
php asp jsp aspx在服务器端的本质:都可以看成一个编译或解释程序。
WebServer收到的网址如果是“news.php”、“news.aspx”、“news.asp”、“news.jsp”等动态页面,那么WebServer就会将这些页面的扩展名发送给相应的程序。news.php发送给php处理程序,news.jsp发送给jsp处理程序,这些处理程序和页面扩展名的对应关系是在WebServer中可配置的。处理程序根据具体页面的名称找到对应的文件,并将其中的代码进行解释,然后这些程序就会将解释后的内容生成一个HTML文件,然后交给WebServer,由WebServer再返回给浏览器。
本文章原创自人人学习网,转载请注明出处。
创新是有方法和原理的,如果只注重技术,想实现跨越式发展,往往事与愿违