赞
踩
服务器:载体,用来搭建web服务器。
例如:window系统,linux系统
中间件(web容器):用来处理从客户端发来的请求,一个服务对应着一个端口。
例如:Apache、IIS、Nginx、Tomcat、Jboss、Web Logic
解释语言:负责数据库以及前台页面交互和信息传递。是后端语言,可以嵌入到html中。
例如:php、asp、aspx、jsp
就像是客户端要查询id=1的信息,中间件将发来的查询收到,然后解释语言与数据库互动,查询id=1的信息。
数据库:存储数据的地方。
例如:mysql、sqlserver、Oracle
1.动态网页:需要进行交互,与数据库进行互动。
例如:搜索查询、创建账号、发表评论。
url例如:http://www.test.com/inc/1.php?id=neo
2.静态网页:不需要交互,不经过php解析,不用数据库,速度比动态网站快。
url例如:http://www.test.com/inc/neo.html
3.伪静态网页:看起来和静态网页格式一样,但到后端有与数据库交互。
url例如:http://www.test.com/inc/neo
到后端就可以表示为:
http://www.test.com/inc/1.php?id=neo
伪静态建站系统(简化建站,降低建站难度):
cms(内容管理系统)、wordpress(博客系统)、DZ(论坛系统)、
phpcms、phpweb
4.用户点击查看页面,web服务器接收到客户端的请求,判断是动态还是静态,静态无需和数据库互动,web服务器直接将相应的数据返回给客户端。
如果是动态请求(查询neo),web服务器会交给php处理,让其与数据库进行交互,数据库进行查询neo的数据,再返回给客户端。
用户想访问www.neo.com,在浏览器上搜索这个域名。
只有知道这个域名的真实ip地址才能通信,所以浏览器会像DNS服务器(域名解析服务器)询问,询问后将域名相对应的ip地址信息保留到主机上的host文件里。
浏览器知道了ip地址,向其web服务器发送请求。
web服务器接收到请求(就是1.2的内容),向客户端返回响应。
浏览器接收到服务器的响应信息,将www.neo.com页面显示在浏览器上。
这只是一个大概工作流程,其中还有好多细节。
http协议:客户端与web服务器在连接之前签订协议,上面说的请求和响应也就是http请求和响应。
1.http协议通信就需要url,url由域名(ip也可以)、web服务器、端口(默认80端口)组成。
例如:
http://www.test.com:80/inc/index.html
其中http://就是http协议
www.test.com:80就是域名及端口
inc/index.html就是web服务器上的目录及文件。
2.http协议工作原理:
客户端先向服务器(80端口)建立tcp连接
连接成功,客户端再向web服务器发送http请求
web服务器接收到请求,将http响应信息返回给客户端
然后断开tcp连接
3.https
https比http更安全,在http的基础上加入SSL(加密传输)
tcp:传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。
tcp建立连接(三次握手)
1.客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
2.服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。
3.客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态(连接状态)。
三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。
Tcp断开连接(四次挥手)
客户端向服务器端发送断开 TCP 连接请求的FIN,ACK报文,在报文中随机生成一个SEQ=x,表示要断开 TCP 连接。
当服务器端收到客户端发来的断开 TCP 连接的请求后,回复发送 ACK 报文,表示已经收到断开请求。回复时,随机生成一个SEQ=y,并发送SEQ=y,ACK=x+1。
服务器端在回复完客户端的 TCP 断开请求后,不会马上进行 TCP 连接的断开。服务器端会先确认断开前,所有传输到客户端的数据是否已经传输完毕。确认数据传输完毕后才进行断开,向客户端发送 FIN,ACK,设置字段值为 1。再次随机生成一个SEQ=z,并发送SEQ=z,ACK=x+1。
客户端收到服务器发来的 TCP 断开连接数据包后将进行回复,表示收到断开 TCP 连接数据包。向服务器发送 ACK 报文,生成一个SEQ=x+1,并发送SEQ=x+1,ACK=z+1。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。