Java 面试问题系列二 (计算机网络)

其实计算机网络一般Java程序员也不用了解,但如果你很清楚网络知识,一定会让面试官刮目相看。

1、HTTP 状态码有哪些,一一解释含义

500 Internal Server Error 请求未完成。服务器遇到不可预知的情况。

400 Bad Request 服务器未能理解请求。

404 Not Found 服务器无法找到被请求的页面。

304 Not Modified 未修改的文档。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。

200 OK 请求成功(其后是对GET和POST请求的应答文档。)

100 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。

1xx 消息

2xx 成功

3xx 重定向

4xx: 客户端错误

5xx: 服务器错误

2、HTTP 请求头有哪些,介绍平时见过的,怎么利用这些信息来进行前后端调试

Host, 请求的域名

User-Agent,用户的浏览器版本信息

Accept,响应的内容类型

Accept-Language, 接受的语言

Accept-Encoding, 可接受的编码方式

Cookie,本地的 Cookie 信息

if-Modified-Since, 本地有缓存,如果在那之后没有做修改,则可以直接使用本地缓存。

3、TCP 和 UDP 的区别

Java 面试问题系列二 (计算机网络)_第1张图片

4、TCP 如何保证可靠性

累计确认

超时重传

超时间隔加倍

快速重传

5、拥塞控制与流量控制的区别

流量控制是由接收方来控制的,拥塞控制由当前的网络环境来控制。

6、OSI七层模型,每层对应的协议有哪些,每层有何含义

Java 面试问题系列二 (计算机网络)_第2张图片

7、网络浏览器访问一个网址发生了什么过程

HTTP 协议基于 TCP,建立连接需要经过三次握手,并且该连接是长连接,即keep-alive

IP 数据包在网络传输中还需要经过域间选路和域内选路。

若长时间接收不到应答,TCP 会进行重传和拥塞控制。

BLABLABLA...

浏览器缓存

操作系统缓存

路由器缓存

本地 DNS 服务器

如果本地 DNS 服务器上没有的话,它会递归的从根 DNS 服务器、顶级 DNS 服务器、权威 DNS 服务器请求,然后把获取到的 IP 返回给浏览器(DNS 协议基于 UDP)。

在地址栏输入 URL,并回车

浏览器查询域名的 IP。一般会有以下几个地方:

浏览器向 web 服务器发送 HTTP 请求

web 服务器处理请求

web 服务器回传一个 HTTP 相应

浏览器接收到以后解析 HTML并显示

浏览器请求嵌入在 HTML 中的对象

最终浏览器呈现一个图文并茂的页面

8、Cookie 和 Session 的区别

Session 是存储在服务器端的,Cookie 是存储在客户端的 //TODO

9、HTTP1.0 和 1.1 的区别

最主要的区别是 1.1 支持持久连接。Connection 请求头的值为 Keep-Alive 时,客户端通知服务器返回本次请求结果后保持连接;Connection 请求头的值为 close 时,客户端通知服务器返回本次请求结果后关闭连接。

1.1 支持断点续传。RANGE:bytes=XXX表示要求服务器从文件 XXX 字节处开始传送

还有一些其他的改进,有兴趣可以自行查阅相关资料

10、HTTP 和 HTTPS 的主要区别

安全。HTTP 直接与 TCP 通信,而 HTTPS 是先与 SSL(加密) 通信,然后再由 SSL 和 TCP 通信

11、滑动窗口算法

又称回退 N 步(go-back-N),发送方的窗口滑动是由接收方是否已成功收到数据包来决定的。即接收方的窗口向前滑动后发送方的窗口才会向前滑动。//TODO

12、域名解析详细过程

13、IP 地址分为几类,每类都代表什么,私网是哪些

10.0.0.0/8

172.16.0.0/12

192.168.0.0/16

A:前 1 byte 为网络标识,剩下的是主机标识

B:前 2 bytes 为网络标识

C:前 3 bytes 为网络标识

D:为多播地址,最高位为 1110

E:特殊 IP。例如 0.0.0.0,127.0.0.1,255.255.255.255 等等

私网

14、IP 头组成;

15、计算机网络中的同步和异步

16、发现百度上不去,怎么办

查看 DNS 解析是否正确。若有错误,删除本地 DNS 缓存

若 DNS 没有问题,使用 traceroute 检测路径,若路径不通则说明网路阻塞,暂时就别上网了

traceroute 没有问题,ping 也能通一般就是服务器端出问题了。


Java 面试问题系列二 (计算机网络)_第3张图片

你可能感兴趣的:(Java 面试问题系列二 (计算机网络))