首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java面试高频知识点汇总 网络协议专题

Java面试高频知识点汇总 网络协议专题

作者头像
Steve Wang
发布2020-09-24 15:22:09
3780
发布2020-09-24 15:22:09
举报
文章被收录于专栏:从流域到海域从流域到海域

TCP、UDP协议的区别

类型

面向连接

传输可靠性

传输形式

传输效率

所需资源

应用场景

首部字节

TCP

面向连接

可靠

字节流

要求通讯数据可靠(文件传输、邮件传输)

20-60

UDP

无连接

不可靠

数据报文段

要求通信速度快(域名转换)

8个字节

TCP提供面向连接的服务。数据传送之前必须先建立连接,数据传送结束后要释放连接。TCP不提供广播或者多播服务。

TCP的可靠性体现在传递数据之前,会有三次握手来建立连接,数据传递时,有确认、窗口、重传、拥塞控制机制,数据传送完毕后,还有断开链接。

TCP协议如何保证可靠传输 (重点)

  1. 应用数据被分割成TCP最适合发送的数据块。
  2. TCP给发送的每一个包进行编号,接收方对数据包进行排序,将有序数据传送给应用层。
  3. 校验和:TCP将保持它首部和数据的校验和。这是一个端到端的检验和,目的时检测数据在传输过程中的任何变化。如果校验和有差错,TCP将丢弃这个报文段并不确认收到此报文。
  4. TCP的接收端会丢弃重复的数据。
  5. 流量控制:TCP连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端能接纳的数据。当接受方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP使用的流量控制协议是可变大小的滑动窗口协议。
  6. 拥塞控制:当网络拥塞时,减少数据的发送。
  7. 停止等待协议:也是为了实现可靠传输的,它的基本原理就是每发完一个分组就- 停止发送,等待对方确认。在收到确认后再发下一个分组。 超时重传: 当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段(超时重传)。

ARQ协议:也是为了实现可靠传输,基本原理时每发完一个分组就停止发送,等待对方确认。收到确认后再发下一个分组。

  • 停止等待ARQ协议
  • 连续ARQ协议

⾃动重传请求(Automatic Repeat-reQuest,ARQ)是OSI模型中数据链路层和传输层的错误纠正协议之⼀。它通过使⽤确认和超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。如果发送⽅在发送后⼀段时间之内没有收到确认帧,它通常会重新发送。ARQ包括停止等待ARQ协议和连续ARQ协议。

在浏览器输入一个url地址到显示页面的过程

  1. 浏览器查找域名的IP地址(DNS查找过程、浏览器缓存、路由器缓存、DNS缓存)。【对应DNS协议:获取域名对应IP】
  2. 浏览器向web服务器发送一个HTTP请求(该过程中cookies会随着请求发送给服务器)。
  3. 服务器处理请求(请求、处理请求及其参数、cookies,生成一个HTML相应)。
  4. 服务器返回一个HTML响应。
  5. 浏览器开始显示HTML。

2-5 包含协议: TCP:与服务器建立连接 IP:建立TCP协议时,需要发送数据,在网络层使用IP协议 OSPF:IP数据包在路由器之间,路由器选择使用OSPF协议(类似协议有RIP协议、IGRP(cisco私有)、EIGRP(cisco私有) ARP:路由器在与服务器通信时,需要将IP地址转化为MAC地址,该过程使用ARP协议 HTTP:TCP连接建立完成后,使用HTTP协议访问网页

  1. DNS解析
  2. TCP连接
  3. 发送HTTP请求
  4. 服务器处理请求并返回HTTP报文
  5. 浏览器解析渲染画面
  6. 连接结束

状态码

有些公司会问的很细,比如505是什么意思?

状态码

类别

原因短语

1xx

Information(信息性状态码)

接收的请求正在处理

2xx

Success(成功状态码)

请求正常处理完毕

3xx

Redirection(重定向状态码)

需要附加操作以完成请求

4xx

Clien Error(客户端错误状态码)

服务器无法处理请求

5xx

Server Error(服务器错误状态码)

服务器处理请求出错

HTTP是不保存状态的协议,如何保存用户状态?

使用Session和Cookies。

Session和Cookies的区别

Cookies和Session都是用来跟踪浏览器用户身份的会话方式,应用场景不太一样。

Cookies一般用来保存用户信息: (1)保存上次登录信息,下次自动填充; (2)下次访问不需要重新登陆; (3)登录一次网站后访问同网站其他页面不需要重新登录。

Session主要作用通过服务端记录用户的状态(典型场景购物车)。

Cookie 数据保存在客户端(浏览器端),Session 数据保存在服务器端。 Cookie 存储在客户端中,⽽Session存储在服务器上,相对来说 Session 安全性更⾼。如果要在Cookie 中存储⼀些敏感信息,不要直接写⼊ Cookie 中,最好能将 Cookie 信息加密然后使⽤到的时候再去服务器端解密。

HTTP1.0和HTTP1.1的主要区别

  1. 长连接:HTTP/1.0使用短链接,每次请求都要建立一次连接;HTTP/1.1使用长连接,默认开启Conection: keep-alive。持续连接分为流水线方式和非流水线方式。流水线是指,客户端在收到HTTP响应报文前就能接着发送新的请求报文;非流水线则是指客户端收到响应之后才能发送下一个请求。
  2. HTTP/1.1新增了24个错误状态响应码。如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。
  3. 缓存处理:HTTP/1.1新增了更多的缓存头来控制缓存控制策略。
  4. 带宽优化及网络连接的使用:HTTP/1.1允许值请求资源的某个部分,以此节省带宽。

HTTP和HTTPS的区别

  1. 端口:HTTP使用80,HTTPS使用443。
  2. 安全性和资源消耗:HTTP运行在TCP之上,所有传输的都是明文,客户端和服务器无法验证对方身份。HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上,传输内容经过对称加密,但对称加密的密匙用服务器方的证书进行了非对称加密。
  • 对称加密:密匙只有一个,加密解密为同一个密码;
  • 非对称加密:密匙成对出现(分为公匙和私匙,且根据公匙无法推知私匙,加密解密使用不同密匙)。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • TCP、UDP协议的区别
  • TCP协议如何保证可靠传输 (重点)
  • 在浏览器输入一个url地址到显示页面的过程
  • 状态码
  • HTTP是不保存状态的协议,如何保存用户状态?
  • Session和Cookies的区别
  • HTTP1.0和HTTP1.1的主要区别
  • HTTP和HTTPS的区别
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档