编程进阶网编程进阶网
  • 基础组成体系
  • 程序编程原理
  • 异常和IO系统
  • 六大设计原则
  • 设计模式导读
  • 创建型设计模式
  • 结构型设计模式
  • 行为型设计模式
  • 设计模式案例
  • 面向对象思想
  • 基础入门
  • 高级进阶
  • JVM虚拟机
  • 数据集合
  • Java面试题
  • C语言入门
  • C综合案例
  • C标准库
  • C语言专栏
  • C++入门
  • C++综合案例
  • C++专栏
  • HTML
  • CSS
  • JavaScript
  • 前端专栏
  • Swift
  • iOS入门
  • 基础入门
  • 开源库解读
  • 性能优化
  • Framework
  • 方案设计
  • 媒体音视频
  • 硬件开发
  • Groovy
  • 常用工具
  • 大厂面试题
  • 综合案例
  • 网络底层
  • Https
  • 网络请求
  • 故障排查
  • 专栏
  • 数组
  • 链表
  • 栈
  • 队列
  • 树
  • 递归
  • 哈希
  • 排序
  • 查找
  • 字符串
  • 其他
  • Bash脚本
  • Linux入门
  • 嵌入式开发
  • 代码规范
  • Markdown
  • 开发理论
  • 开发工具
  • Git管理
  • 百宝箱
  • 开源协议
  • 技术招聘
  • 测试经验
  • 职场提升
  • 技术模版
  • 关于我
  • 目标清单
  • 学习框架
  • 育儿经验
  • 我的专栏
  • 底层能力
  • 读书心得
  • 随笔笔记
  • 职场思考
  • 中华历史
  • 经济学故事
  • 基础组成体系
  • 程序编程原理
  • 异常和IO系统
  • 六大设计原则
  • 设计模式导读
  • 创建型设计模式
  • 结构型设计模式
  • 行为型设计模式
  • 设计模式案例
  • 面向对象思想
  • 基础入门
  • 高级进阶
  • JVM虚拟机
  • 数据集合
  • Java面试题
  • C语言入门
  • C综合案例
  • C标准库
  • C语言专栏
  • C++入门
  • C++综合案例
  • C++专栏
  • HTML
  • CSS
  • JavaScript
  • 前端专栏
  • Swift
  • iOS入门
  • 基础入门
  • 开源库解读
  • 性能优化
  • Framework
  • 方案设计
  • 媒体音视频
  • 硬件开发
  • Groovy
  • 常用工具
  • 大厂面试题
  • 综合案例
  • 网络底层
  • Https
  • 网络请求
  • 故障排查
  • 专栏
  • 数组
  • 链表
  • 栈
  • 队列
  • 树
  • 递归
  • 哈希
  • 排序
  • 查找
  • 字符串
  • 其他
  • Bash脚本
  • Linux入门
  • 嵌入式开发
  • 代码规范
  • Markdown
  • 开发理论
  • 开发工具
  • Git管理
  • 百宝箱
  • 开源协议
  • 技术招聘
  • 测试经验
  • 职场提升
  • 技术模版
  • 关于我
  • 目标清单
  • 学习框架
  • 育儿经验
  • 我的专栏
  • 底层能力
  • 读书心得
  • 随笔笔记
  • 职场思考
  • 中华历史
  • 经济学故事
  • 代码规范
  • Markdown
  • 开发理论
  • 开发工具
  • Git管理
  • 百宝箱
  • 开源协议
  • 技术招聘
  • 测试经验
  • 测试经验
  • 职场提升
  • 技术模版

网络相关问题汇总

目录介绍

  • 01.网络基础问题
  • 02.IP地址问题
  • 03.网络请求流程
  • 04.Http协议问题
  • 05.TCP和UDP问题
  • 06.网络其他问题
  • 07.Socket通信问题

01.网络基础问题

  • 请求过程:在浏览器中输入了一个链接,为什么会打开网页,然后看到图片,文字,这些东西是哪里来的?经历那些过程?
  • 协议:scheme协议是怎么设计的?在浏览器中输入非http类型链接,为何有的可以打开,有的打不开,对链接有何要求?
  • 重定向:为什么打开购物网站后,本来是打开我的收藏,但是去重定向到了首页登陆页面?
  • 应用层到传输层:http数据传递,会通过socket实现,说一下传输层的流程?tcp和udp实现有何特点?

02.IP地址问题

  • ip解析:域名是如何解析成ip地址?IP地址是唯一不变的?HttpDns的具体原理是什么?
  • ipv4和ipv6:它们之间是什么联系?

03.网络请求流程

  • 请求流程:在浏览器输入一个网址到网页显示出来有哪些经过?以看新闻,点外卖为案例说一下!
  • Http包结构:如何设计请求报文?请求报文结构是怎样的?请求行,头部,主体分别包含那些内容?
  • Http包结构:响应包是如何设计的?响应包结构是怎样的?状态行,响应头部,响应主体分别包含那些内容?
  • 传输方式:常见Content-Type定义有哪些?普通文本,表单键值对,json数据等分别有何区别?
  • 请求方式:GET和POST请求有什么区别?Post请求可以保存为书签吗?它们数据安全是如何保障的?

04.Http协议问题

  • 版本:Http1.1,2.0,3.0版本有何区别?分别做了那些优化工作,简单叙述一下!
  • 说一下http和HTTPS的区别?HTTPS工作原理是什么?https相关,如何验证证书的合法性?
  • 什么是Http协议无状态协议?怎么解决Http协议无状态协议?无状态用cookie和Session可以解决问题的原理是什么?
  • 常用的HTTP方法有哪些?post和get请求有什么区别?实际开发中涉及账号登录使用哪种请求?
  • HTTPS 是怎么做加密的?https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解?
  • Http的request和response的协议组成?说一下 HTTP 协议请求头我们常用的3个字段
  • Https请求慢的解决办法,DNS,携带数据,直接访问IP?Http位于TCP/IP模型中的第几层?为什么说Http是可靠的数据传输协议?
  • 浏览器如何验证证书的合法性?证书是公开的,如何避免这种证书冒用的情况?只有认证机构可以生成证书吗?

05.TCP和UDP问题

  • 通信机制:HTTP通信机制需要经历那些步骤?TCP和UDP有什么区别?
  • 握手和挥手:TCP 的 3 次握手和四次挥手,说一下这个过程?为什么不能两次握手呢?要三次?client如何确定自己发送的消息被server收到?
  • TCP消息:TCP可靠传输原理实现?如何TCP拥塞控制?TCP如何流量控制?
  • Socket:什么是socket?socket选项 TCP NO DELAY 是指什么?Socket 工作在 TCP/IP 协议栈是哪一层?

06.网络其他问题

07.Socket通信问题

  • Socket概念:Socket是如何通信的?跟Http有何区别?数据传递性能如何?是否具有安全性?
  • Socket实践:Socket是如何使用的的?如何创建连接,读数据(接受)和写数据(发送)分别是怎么设计的?
  • Socket实践:读数据的时候,如何将io字节流转化为特定的tcp数据,拿到tcp数据后如何解析数据(解析成对应实体bean)?
  • Socket长链接:如何设置socket保持长链接?如何保持轮训心跳包稳定性并且不会阻塞主线程?如何理解心跳包?
  • Socket读写:如何理解Socket读写数据?如何处理读写异常逻辑?异常之后如何设计重新连接?
  • Socket数据:TcpPacket是如何设计的?消息的长度是不确定的,并且每条消息都有它的边界。我们如何来处理这个边界?
  • Socket数据:如何保证数据有序性?一个任务队列,执行任务,如何保证先取出的任务,执行结果需要先放入结果队列?
贡献者: yangchong211