基础篇面试汇总可查看博主此文:Java基础面试题(2022最新版汇总)
文章目录
- 网络协议面试
-
- 1.什么是网络编程
- 2.网络编程中两个主要的问题
- 3.网络协议是什么
- 4.为什么要对网络协议分层
- 5.计算机网络体系结构
- 6.什么是TCP/IP和UDP
- 7.TCP与UDP区别:
- 8.TCP和UDP的应用场景:
- 9.形容一下TCP和UDP
- 10.运行在TCP 或UDP的应用层协议分析。
- 11.什么是Http协议?
- 12.Http和Https的区别?
- 13.什么是http的请求体?
- 14.HTTP的响应报文有哪些?
- 15.HTTPS工作原理
- 16.三次握手与四次挥手
- 17.为什么 TCP 链接需要三次握手,两次不可以么?
- 18.用现实理解三次握手的具体细节
- 19.建立连接可以两次握手吗?为什么?
- 20.为什么要四次挥手?
- 21.TCP 协议如何来保证传输的可靠性
- 22.客户端不断进行请求链接会怎样?DDos(Distributed Denial of Service)攻击?
- 23.GET 与 POST 的区别?
- 24.为什么在GET请求中会对URL进行编码?
- 25.TCP与UDP的区别
- 26.TCP和UDP分别对应的常见应用层协议
- 27.TCP 的拥塞避免机制
- 28.什么是Socket
- 29.socket属于网络的那个层面
- 30.Socket通讯的过程
- 31.Socket和http的区别和应用场景
- 32. 一次完整的HTTP请求所经历几个步骤?
- 33.浏览器中输入:“www.xxx.com” 之后都发生了什么?请详细阐述。
- 34.什么是 HTTP 协议无状态协议?怎么解决Http协议无状态协议?
- 35.Session、Cookie 与 Application
- 36.滑动窗口机制
- 37.常用的HTTP方法有哪些?
- 38.常见HTTP状态码
- 39.SQL 注入
- 40.XSS 攻击
- 41.OSI 网络体系结构与 TCP/IP 协议模型
- 42.网络层的 ARP 协议工作原理?
- 43.IP地址的分类
- 44.IP地址与物理地址
- 45.影响网络传输的因素有哪些?
- 46.什么是对称加密与非对称加密
- 47.什么是Cookie
- 48.什么是Session
- 49.Cookie和Session对于HTTP有什么用?
- 50.Cookie与Session区别
网络协议面试
1.什么是网络编程
网络编程的本质是多台计算机之间的数据交换。数据传递本身没有多大的难度,不就是把一个设备中的数据发送给其他设备,然后接受另外一个设备反馈的数据。现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈。在网络编程中,发起连接程序,也就是发送第一次请求的程序,被称作客户端(Client),等待其他程序连接的程序被称作服务器(Server)。客户端程序可以在需要的时候启动,而服务器为了能够时刻相应连接,则需要一直启动。
例如以打电话为例,首先拨号的人类似于客户端,接听电话的人必须保持电话畅通类似于服务器。
连接一旦建立以后,就客户端和服务器端就可以进行数据传递了,而且两者的身份是等价的。在一些程序中,程序既有客户端功能也有服务器端功能,最常见的软件就是QQ、微信这类软件了