c#开发之七
第一章 web服务器的工作原理及过程
1.1基本原理
一、tcp三次握手
第一次握手:发送请求连接包给服务器。客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到请求连接后,返回一个可以连接的应答包。服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到应答包后再向服务器端发送收到应答包的确认包。客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
二、socket
程序通过socket进行通信。作为进程通信机制,用于描述IP地址,端口,是一个通信链的句柄。sochet实际上是对tcp/ip协议的封装,socket本身不是协议,而是一个调用接口(API)
通过Socket,我们才能使用TCP/IP协议。TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。
socket函数接口:,比如create、listen、connect、accept、send、read和write等等。
套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。
1、服务器监听:服务器生成一个监听socket,实时监听来访socket。服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。
2、客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。
为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
3、连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程(一个新的socket),把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。
而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。
三、http协议
1、HTTP/0.9 的特性
只支持html标签,只支持纯文本内容。
只有GET一个方法,能请求简单的页面。
2、http/1.0 特性
除支持html标签以外,引入了MIME,可以传纯文本以外的内容;
增加了七个方法,从而增强了访问服务器的方式,使动态网页访问方式更多。
(1)MIME
MIME:multipurpose Internet Mail Extension ,多用途互联网邮件扩展。
在传输前,把非文本数据重新编码为文本格式,接收方用相反的方式将其重新还原为原来的格式,还能调用相应的程序打开此文件。
smtp(简单邮件传输协议): 只能传输纯文本邮件。
在smtp中引入了MIME后可以传输多种文件了。如图像、视频等。
将MIME引入到http当中,所以现在的网页可以传输丰富的文件。
客户端浏览器向web服务器请求数据--》服务器收到请求把响应的文件组织成一个Html文件传给客户端时,都在前面加了格式类型(如 image/jpg)--》客户端览器收到服务器传回来的html页面时,会利用浏览器中的相应的插件来打开此html页面中包含的文件并展示出来(现在浏览器可以解析几百种文件格式。如果没有这种文件的插件就无法打开,如flash,就需要手工安装插件)
(2)http/1.0的几个方法:
GET:从服务器获取资源到本地
POST:提交
head:
PUT:
DELETE:远程从服务器端删除某文件。
trace:
options
connection
(3)动态网页的执行过程:
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/66951.html
- 上一篇:windows7 iis安装与配置
- 下一篇:c#开发之四