Java 计算机网络

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiangchao858/article/details/87996774

此文记录了自己学习Java 计算机网络的基础知识,纪念自己面试前的准备。

OSI 七层协议

是一个定义良好的协议规范,定义了开放系统的层次结构,没有提供一个可以实现的方法。

物理层

定义了物理设备,IEEE 802.2,网卡工作在这一层

数据链路层

物理寻址,将比特流转换为逻辑传输线路,交换机工作在这一层

网络层

控制子网的运行,如逻辑编址、分组传输、路由选择,路由器工作在这一层

传输层

接受上一层,需要注意TCP、UDP协议

回话层

表示层

应用层

需要注意HTTP协议

TCP/IP

先自上而下,后自下而上处理数据头部

TCP 三次握手

在 TCP/IP 协议中,TCP协议提供可靠的链接服务,采用三次握手建立链接:

第一次握手:建立连接时,客户端发送SYN包[syn=j]到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到SYN包,必须确认客户的SYN[ack=j+1],同时自己也发送一个SYN包[syn=k],此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK[ack=k+1],此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

为什么要三次?

为了初始化 Sequence Number的初始值

首次握手-SYN超时

TCP 四次挥手

挥手是为了终止连接

UDP

特点

  • 面向非连接
  • 不维护连接状态,支持同时向多个客户端传输相同的消息
  • 数据包报头只有8个字节,额外开销小

TCP与UDP的区别

  • TCP面向连接,UDP无连接
  • TCP是可靠传输,UDP尽最大努力交付,不保证数据传输
  • UDP实时性好,工作效率高
  • TCP是点对点,UDP可以一对一,一对多,多对一,多对多

HTTP

请求/响应的步骤

  1. 客户端链接到Web服务器
  2. 发送HTTP请求
  3. 服务器接受请求并返回HTTP响应

在浏览器输入URL,按下回车后经历的流程

DNS 解析
TCP 连接
发送HTTP 请求
服务器处理

HTTP 常见状态码

  • 200
  • 404
  • 500

GET 请求与POST请求的区别

  1. 报文的不同:GET将信息放在URL,POST放在报文体
  2. 数据层面:GET幂等性,安全
  3. 缓存:GET请求可以缓存,被存储

Cookie和Session的区别

  1. Cookie数据存放在客户浏览器上,Session数据放在服务器上
  2. Session相对于Cookie更安全
  3. 若需要减轻服务器的负担,应当使用Cookie

HTTP 和HTTPS 的区别

  • HTTPS协议需要证书
  • HTTP信息明文传输,HTTPS使用了SSL加密传输‘’
  • 连接方式不同,HTTP无状态,HTTPS可身份认证
  • HTTP端口80,HTTPS端口443

猜你喜欢

转载自blog.csdn.net/jiangchao858/article/details/87996774
今日推荐