网络常见面试题(第二弹)

欢迎关注我的技术公众号:小谢backup

1、HTTP有哪八种请求类型?

GET
POST
PUT
DELETE
Options
HEAD
TRACE
CONNECT

 

其中,GET和POST是最基本的,其他方式都是通过这两种请求间接实现的。

 

2、session什么时候被创建?

一个常见的错误是以为session在有客户端访问时就被创建,然而事实是直到某server端程序(如Servlet)调用HttpServletRequest.getSession(true)这样的语句时才会被创建。


3、session何时被删除?

  • 程序调用HttpSession.invalidate()
  • 距离上一次收到客户端发送的session id时间间隔超过了session的最大有效时间
  • 服务器进程被停止

再次注意,关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效。


4、运输层协议与网络层协议的区别?

网络层协议负责的是提供主机间的逻辑通信

运输层协议负责的是提供进程间的逻辑通信


5、http 响应码 301 和 302 代表的是什么?有什么区别?

301:永久重定向。

302:暂时重定向。

它们的区别是,301 对搜索引擎优化(SEO)更加有利;302 有被提示为网络拦截的风险。


6、tcp 为什么要三次握手,两次不行吗?为什么?

为了节省服务器资源。


详解:如果采用两次握手,那么只要服务器发出确认数据包就会建立连接,但由于客户端此时并未响应服务器端的请求,那此时服务器端就会一直在等待客户端,这样服务器端就白白浪费了一定的资源。

若采用三次握手,服务器端没有收到来自客户端的再此确认,则就会知道客户端并没有要求建立请求,就不会浪费服务器的资源。


7、forward(转发) 和 redirect(重定向) 的区别?

地址栏URL显示:foward URL不会发生改变,redirect URL会发生改变;

数据共享:forward 可以共享 request 里的数据,redirect 不能共享;

效率:forward 比 redirect 效率高。


8、说一下 tcp 粘包是怎么产生的?

tcp 粘包可能发生在发送端或者接收端,分别来看两端产生粘包的原因:

发送端粘包:发送端需要等"发送缓冲区"满才发送出去,造成粘包;

接收方粘包:接收方不及时取"接收缓冲区"的包,造成多个包接收。


9、HTTP 502和503的区别?

从网络角度,502已经与后端建立了连接,但超时;503与后端连接未建立,超时。


10、ARP协议是用来干什么的?

实现 IP地址和 MAC地址的转换。

posted @ 2021-05-18 22:46  小谢backup  阅读(93)  评论(0)    收藏  举报