剑指Java面试笔记 -- 网络知识篇

本文介绍了TCP的三次握手和四次挥手过程,强调了TCP的可靠性和面向连接的特点,对比了TCP与UDP的区别。同时,概述了HTTP协议的主要特点和HTTP状态码,以及GET与POST请求的不同。还提及了Socket作为操作系统对TCP/IP协议的抽象。这些内容是针对Java面试的知识点记录。
摘要由CSDN通过智能技术生成

仅作为面试知识点记录,具体课程请在慕课网搜索剑指Java面试-Offer直通车

TCP三次握手

TCP简介

  • 面向连接的、可靠的、基于字节流的传输层通信协议
  • 将应用层的数据流分割成报文段并发送给目标节点的TCP层
  • 数据包都有序号,对方收到则发送ACK确认,未收到则重传
  • 使用校验和来检验数据再传输过程中是否有误

TCP Flags

  • URG:紧急指针标志
  • ACK:确认序号标志
  • PSH:push标志
  • RST:重置连接标志
  • SYN:同步序号,用于建立连接过程
  • FIN:finish标志,用于释放连接

TCP三次握手流程图

在这里插入图片描述

面试题

在这里插入图片描述

TCP四次挥手流程图

在这里插入图片描述

面试题

在这里插入图片描述

UDP

UDP特点

  • 面向非连接
  • 不维护连接状态,支持同时向多个客户端传输相同的消息
  • 数据包报头只有8个字节,额外开销较小
  • 吞吐量只受限于数据生成速率、传输速率以及机器性能
  • 尽最大努力交付,不保证可靠交付,不需要维持复杂的链接状态表
  • 面向报文,不对应用程序提交的报文信息进行拆分或合并

TCP和UDP的区别

  • 面向连接 vs 无连接
  • 可靠性
  • 有序性
  • 速度
  • 量级

TCP滑动窗口

RTT和RTO

  • RTT:发送一个数据包到收到对应的ACK,所花费的时间
  • RTO:重传时间间隔

TCP会话的发送方

在这里插入图片描述

TCP会话的接收方

在这里插入图片描述

HTTP

HTTP主要特点

  • 支持客户/服务器模式
  • 简单快速
  • 灵活
  • 无连接
  • 无状态

在浏览器地址栏键入URL,按下回车之后经历的流程

  • DNS解析
  • TCP连接
  • 发送HTTP请求
  • 服务器处理请求并返回HTTP报文
  • 浏览器解析渲染页面
  • 连接结束

HTTP状态码

  • 1xx:指示信息–表示请求已接收,继续处理
  • 2xx:成功–表示请求已被成功接收、理解、接受
  • 3xx:重定向–要完成请求必须进行更进一步的操作
  • 4xx:客户端错误–请求有语法错误或请求无法实现
  • 5xx:服务器端错误–服务器未能实现合法的请求
常见状态码
  • 200 OK:正常返回信息
  • 400 Bad Request:客户端请求有语法错误,不能被服务器所理解
  • 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
  • 403 Forbidden:服务器收到请求,但是拒绝提供服务
  • 404 Not Found:请求资源不存在,eg,输入了错误的URL
  • 500 Internal Server Error:服务器发生不可预期的错误
  • 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常

面试题

GET请求和POST请求的区别
  • HTTP报文层面:GET将请求信息放在URL,POST放在报文体中
  • 数据库层面:GET符合幂等性和安全性,POST不符合
  • 其他层面:GET可以被缓存、被存储,而POST不行
Cookie和Session的区别
  • Cookie数据存放在客户的浏览器上,Session数据放在服务器上
  • Session相对于Cookie更安全
  • 若考虑减轻服务器负担,应当使用Cookie
HTTP和HTTPS的区别
  • HTTPS需要到CA申请证书,HTTP不需要
  • HTTPS密文传输,HTTP明文传输
  • 连接方式不同,HTTPS默认使用443端口,HTTP使用80端口
  • HTTPS=HTTP+加密+认证+完整性保护,较HTTP安全

Socket

Socket简介

Socket是对TCP/IP协议的抽象,是操作系统对外开放的接口

面试题

在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值