web服务器的工作原理及其相关协议

说到服务器,听起来感觉很高大上。其实并不然,一台高性能的PC,或者说任意一台PC,都可以被当做服务器。服务器本质就是供他人浏览的。当用户访问一个网页时会向服务器发起这样一个请求,然后服务器接收后返回用户所需要的文档。如果要说服务器与PC的区别恐怕只是不间断工作。其次目的不同,服务器是为了面向用户,而PC是面向拥有者个人。再然后就是性能方面,一般来说服务器为了满足较多用户同时访问,设备性能相较于普通PC,要求较高。

说完了服务器,再谈谈原理。刚刚服务器简述中也提到了服务器工作既是一个发起请求,响应请求的过程。大致可以分为以下四个步骤

1 连接过程。 

连接过程就是说web服务器和其他浏览器之间建立的一种连接。首先我们连接的对象是服务器的IP,那么就有一个域名转换的问题。利用DNS解析将所访问的域名转换成IP地址,之后进行连接。连接部分需要提到一个东西叫 socket (这个我也不是很懂...)百度了一下大概是这样一个情况

Socket(套接字)的英文原义是“孔”或“插座”。在计算机领域指网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。

关于Socket的直观解释,百度上给的比较详细 我就搬运一下

/

Socket非常类似于电话插座。以一个国家级电话网为例,电话的通话双方相当于相互通信的2个进程,区号是它的网络地址;区内一个单位的交换机相当于一台主机,主机分配给每个用户的局内号码相当于Socket号。任何用户在通话之前,首先要占有一部电话机,相当于申请一个Socket;同时要知道对方的号码,相当于对方有一个固定的Socket。然后向对方拨号呼叫,相当于发出连接请求(假如对方不在同一区内,还要拨对方区号,相当于给出网络地址)。假如对方在场并空闲(相当于通信的另一主机开机且可以接受连接请求),拿起电话话筒,双方就可以正式通话,相当于连接成功。双方通话的过程,是一方向电话机发出信号和对方从电话机接收信号的过程,相当于向Socket发送数据和从socket接收数据。通话结束后,一方挂起电话机相当于关闭Socket,撤消连接。

Socket正如其英文原意那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务

/

百度上这种直观的类比解释十分清晰。Socket起到一个连接作用,其中文译名套接字,套接就反应出了这种两端连接的性质。

(其实还有关于DNS解析过程,原来想简单了,以为只是域名解析返回IP。。。后来发现这个过程还挺复杂的。。这次不说多了。。自己也还没完全搞清楚原理。。。)


2  请求过程

请求过程是基于连接建立之后,由客户端向web服务器发送的内容。通过GET和POST命令向服务器发送。

Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API)。在socket这样一个架接成功后,就要讲到一个关于协议的问题。

首先说道协议,TCP/IP协议啊,HTTP协议啊。似乎很多很繁杂,然后我又百度了下。大致这样归类。

首先计算机网络体系结构的通信协议被划分成七层

/

应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
//

这就是OSI/RM模型,其中第四层完成数据传输服务,上面三层面向用户。我们所熟知的协议也可以被如此划分

(以下直接复制于百度)
物理层以太网 · 调制解调器 · 电力线通信(PLC) · SONET/SDH · G.709 · 光导纤维 · 同轴电缆 · 双绞线等
数据链路层:Wi-Fi( IEEE 802.11) · WiMAX( IEEE 802.16) ·ATM · DTM · 令牌环 · 以太网 ·FDDI · 帧中继 · GPRS · EVDO ·HSPA · HDLC · PPP · L2TP ·PPTP · ISDN·STP 等
网络层协议:IP (IPv4 · IPv6) · ICMP· ICMPv6·IGMP ·IS-IS · IPsec · ARP · RARP等
传输层协议:TCP · UDP · TLS · DCCP · SCTP · RSVP · OSPF 等
应用层协议:DHCP · DNS · FTP · Gopher · HTTP· IMAP4 · IRC · NNTP · XMPP ·POP3 · SIP · SMTP ·SNMP · SSH ·TELNET · RPC · RTCP · RTP ·RTSP· SDP · SOAP · GTP · STUN · NTP· SSDP · BGP · RIP 等


我们的TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。

而在请求过程中的GET/POST是属于http协议中的内容。
我们在socket成功的基础上进行TCP连接的建立。然后WEB浏览器会向WEB服务器发送请求,之后还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。 

3 应答过程
应答过程就是服务器收到这样一个请求,进行处理。从它的文档空间中搜索子目录mydir的文件index.html。如果找到该文件,Web服务器把该文件内容传送给相应的Web浏览器。应答的第一部分是协议的版本号和应答状态码,然后会发送用户发送关于它自己的数据及被请求的文档。 Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。

4 关闭连接
一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接。以保证其它Web浏览器能够与Web服务器建立连接。






  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值