我与ASP.NET的爱恨情仇——基础概念篇
Socket套接字:套接字用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。
套接字工作原理
要通过互联网进行通信,你至少需要一对套接字,其中一个运行于客户机端,我们称之为 ClientSocket,另一个运行于服务器端,我们称之为ServerSocket。 http访问Internet底层,也是使用的socket通信。在浏览器的地址栏输入一个网址,其实是向服务器发送消息(请求)。
根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。
服务器监听,是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的 状态,实时监控网络状态。
客户端请求,是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接 字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的 地址和端口号,然后就向服务器端套接字提出连接请求。
连接确认,是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它 就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦 客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他 客户端套接字的连接请求。(注意:这个原理很重要)。
IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址代表着整个网络。
UDP协议不可靠连接,不能保证连接畅通,同时不能保证信息正确传达。
TCP协议是Internet最基本的协议,可靠连接、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
TCP协议三次握手:假设A,B两终端进行通信,A发信息给B,检查连接畅通(第一次),B回给A表达连接畅通,正确读取A的信息,并回复给A(第二次),A再给B发消息,表明A能正确读取B发的信息,并回复给B(第三次)。这是一个简单的示例。
报文(message)是网络中交换与传出的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长短不限且可变。
报文也是网络传输的单位,传输过程中会不断的封装成组,包,帧来传输,封装的方式就是添加一些信息段,那些就是报文头以一定格式组织起来的数据。
比如:里面有报文类型,报文版本,报文长度,报文实体等信息。
HTTP报文详解:
他是HTTP应用程序之间发送的数据块。这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容以及含义,后面的跟着可选的数据部分。这些报文都是在客户端,服务器和代理之间流动。
HTTP报文的流向:一次HTTP请求。HTTP报文会从“客户端”留到“代理”在留到“服务器”,在服务器工作完成之后,报文会从“服务器”在服务器工作完成之后,报文后悔偶从“服务器”留到“代理”,在留到“客户端”