C#中级面试题
答:网络七层由下往上分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
http协议 对应 应用层
tcp协议 对应 传输层
ip 协议 对应 网络层
TCP/IP 是传输层协议,主要解决数据如何在网络中传输,而http是应用层协议,主要解决如何包装数据
Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议
答:Socket是对TCP/IP协议的封装,要想明白Socket连接,先要明白TCP连接。
建立起一个TCP连接需要经过“三次握手”:
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连 接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”
答:典型的 TCP 客户端要经过下面三步操作:
服务端的工作是建立一个通信终端,并被动地等待客户端的连接。典型的 TCP 服务端执行如下两步操作:
答:HTTP协议即超文本传送协议(HypertextTransfer Protocol ),是Web联网的基础,HTTP协议是建立在TCP协议之上的一种应用。
HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。
由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的 做法是即时不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客 户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。
答:客户端发送一个HTTP请求到服务器的请求消息包括以下格式:
请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。
POST请求例子,使用Charles抓取的request:
答:一般情况下,服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息。
HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。
答:
再简单点理解就是: