您的位置:首页 > 理论基础 > 计算机网络

网络知识方面的面试题

2016-03-01 11:34 411 查看
总结了一部分面试时候常见的网络知识方面的问题。

一、TCP/IP三次握/四次挥手

1.1 三次握手过程。




1.2 四次挥手过程。




【四次挥手过程说明】

(1)假设Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,然后就知道client没有数据要发给他了,但是如果Server还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。

(2)然后Server会先发送ACK,告诉Client端发的FIN请求Server收到了,但是Server还没准备好,请Client等待Server的FIN消息。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。

(3)当Server端确定数据已发送完成,则会向Client端发送FIN报文,告诉Client端Server这边数据发完了,可以准备好关闭连接了。

(4)Client端收到FIN报文后,就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。而Server端收到ACK后,就知道可以断开连接了。Client端等待了2MSL后依然没有收到回复(没有FIN重发?),则证明Server端已正常关闭,那么Client端也会关闭连接了。

二、http和https

(1)超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。

(2)HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

区别:

(1)http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议;

(2)http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443;

(3)https要更繁琐。但握手就需要更多地往返时间;此外服务器端和客户端之间发送的会话内容都要加密解密;

三、http 的GET和POST

(1)根据HTTP规范,GET用于从指定的资源请求数据。而且应该是安全的和幂等的 。POST用于向指定的资源提交要被处理的数据。

(2)GET提交请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),且传输数据就会受到URL长度的限制。POST则是把提交的数据放置在是HTTP包的包体中(实体部分),并且理论上传输数据大小是不受限制的。

(3)在某种意义上讲POST安全性比GET高,因为GET的数据会以明文方式附加到URL中,而POST的数据都是在请求的实体部分的,对于用户是不可见的。当然用抓包就另当别论了。。。

其他的一些http请求:



四、http 1.0/1.1

(1)HTTP 1.0(短连接)规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。

(2)HTTP 1.1支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。HTTP 1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容,这样也显著地减少了整个下载过程所需要的时间。

扩展:HTTP 2.0

1)多路复用

2)HEAD 压缩

3)服务器推送

4)优先级请求
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网络 面试题