Java面试题—计网篇

计算机网络模型

有两大分类:一个是国际组织指定的OSI七层模型,一个是实际使用中的TCP/IP五层模型


数据链路层:将上层的数据转化为数据帧发送到链路和是哪个,以及把接收到的帧中的数据取出并交给网络层
网络层:主要为主机之间提供通信,这里包括IP协议(还有ARP,ICMP,IGMP)
传输层:为应用程序(进程)之间提供端到端通信,主要是面向连接的TCP协议和面向无连接的UDP协议
应用层:对应线程,常用到的就是HTTPHTTPS(对HTTP协议的加密,更安全可靠,采用HTTP+SSL(安全套接字层))协议

TCP连接管理:

  • 连接三次握手:

    1. 客户端请求建立连接
    2. 服务端对客户端的请求进行响应
    3. 客户端对服务端的响应信息进行回应
  • 断开四次握手:

    1. 客户端请求断开连接
    2. 服务端对客户端的请求回应
    3. 服务端请求断开连接
    4. 客户端对服务端的请求回应
  • TCP和UDP区别:

    1. TCP面向连接,UDP面向无连接
    2. TCP保证数据无差错,不丢失,不重复按序送达;UDP尽最大努力交付,不保证可靠
    3. TCP面向字节流,UDP面向报文
    4. TCP只能点到点连接,UDP支持一对一、一对多、多对一、多对多的交互通信

常见的状态码(HTTP)

1xx:表示通知信息,收到或者正在处理
2xx:表示成功,接受或者知道了
3xx:表示重定向,如完成请求还需要采取进一步行动(301-资源被永久移到其他URL)
4xx:表示客户端的差错,如请求中有语法错误(401-请求用户身份认证、403-服务器理解客户端请求但拒绝、404-找不到资源)
5xx:表示服务端的差错(500-服务器内部错误)

你可能感兴趣的:(Java面试题—计网篇)