版权声明:本文为博主原创文章,未经博主允许不得转载。 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
请求/响应的步骤
- 客户端链接到Web服务器
- 发送HTTP请求
- 服务器接受请求并返回HTTP响应
在浏览器输入URL,按下回车后经历的流程
DNS 解析
TCP 连接
发送HTTP 请求
服务器处理
HTTP 常见状态码
- 200
- 404
- 500
GET 请求与POST请求的区别
- 报文的不同:GET将信息放在URL,POST放在报文体
- 数据层面:GET幂等性,安全
- 缓存:GET请求可以缓存,被存储
Cookie和Session的区别
- Cookie数据存放在客户浏览器上,Session数据放在服务器上
- Session相对于Cookie更安全
- 若需要减轻服务器的负担,应当使用Cookie
HTTP 和HTTPS 的区别
- HTTPS协议需要证书
- HTTP信息明文传输,HTTPS使用了SSL加密传输‘’
- 连接方式不同,HTTP无状态,HTTPS可身份认证
- HTTP端口80,HTTPS端口443