计算机网络八股文--day1

从浏览器输入url到显示主页的过程?

1. 浏览器查询域名的IP地址

2. 浏览器和服务器TCP三次握手

3. 浏览器向服务器发送一个HTTP请求

4. 服务器处理请求,返回HTTP响应

5. 浏览器解析并且渲染页面

6. 断开连接

其中使用到的协议有DNS协议(域名解析协议),IP协议,OSPF协议(网路层路由选择协议),ARP(地址解析协议,将IP地址转换为MAC地址),NAT(网络地址转换,内网到外网),HTTP(端口80,用来传输HTTP报文)

说说DNS解析过程

首先查询本地浏览器缓存,如果找到就返回,没有查询本地DNS服务器,还没有的话,那就迭代或者递归查询根域名服务器,顶级域名服务器,权限域名服务器

迭代查询:自己的事情自己做

递归查询:由根域名服务器帮你把事情都办了

说说socket和websocket的区别

socket其实是端口+IP+协议

websocket用来解决http不支持持久化连接的问题

常见的端口和协议

FTP 21

TCP 6

UDP 17

DNS 53

Telnet 23 远程登录协议

SSH 22 安全远程管理协议

HTTP 80

HTTPS 443

说说HTTP的状态码和含义

1XX 信息状态码

2XX 成功状态码

3XX 重定向状态码

4XX 客户端错误

5XX 服务器端错误

口诀:信成重客服 (相信老板就再次(重)就变成了客服)

101 切换请求协议

200请求成功

301 请求资源永久移动,返回新的url

302 请求资源临时移动,继续使用原来的url

400 客户端语法错误

401 请求需要进行验证

403 服务端拒绝执行请求

500 服务器内部错误

HTTP有哪些请求方式

GET:对服务器获取资源的简单请求

POST:向服务器提交数据请求

PUT:修改指定资源

DELETE:删除URL标记的指定数据

CONNECT:用于代理服务器

HEAD:获取URL资源的首部

OPTIONS:返回所有可用的方法

POST增,DELETE删,PUT改 GET查

get 与post的区别:

从HTTP报文层面看:get请求将信息放在url中,而post将请求信息放在请求体中,get请求携带的数据量有限,get请求将数据放在url上不太安全,get相对安全一些

get请求可以被缓存,这都是post所不具备的

get的长度限制:由于get通过url传递数据,但是url本身没有对数据长度限制,而是由浏览器进行限制,长度针对整个url chrome是8182个字符

HTTP请求的过程和原理

每个服务器都有一个进程,监听80端口,以发现是否有浏览器向它发出连接建立请求

监听到连接请求,就会建立TCP连接

浏览器向服务器发出浏览某个界面的请求,服务器接着就返回所请求的页面作为响应

最后,释放TCP连接

说一下HTTP报文结构

HTTP请求报文

报文首部:请求行,请求首部字段,通用首部字段,实体首部字段

空行

报文主体

请求行包含三个字段:方法字段,url,http版本字段

HTTP响应报文

报文首部:状态行,响应首部字段,通用首部字段,实体首部字段

空行

报文主体

状态行包含三个字段:协议版本,状态码,状态信息

url和uri的区别

uri 统一资源标识符,标识的是资源

url 统一资源定位符,提供的是资源的路径

说说HTTP各个版本的区别

HTTP/1.0 默认短链接,但可以强制开启长连接

HTTP/1.1 默认持久连接,分块传输编码,管道机制(同一个连接中,客户端可以请求多个资源)

HTTP/2.0 头信息和数据体都是二进制,完全多路复用:客户端和浏览器都可以发送多个请求或者回应,而且不用按照顺序一一对应,引入头文件压缩机制,使用gzip或者compress压缩后再发送,且允许服务器主动向客户端发送资源

HTTP/3 传输层基于UDP,靠QUIC保证可靠性:这就是3相对于之前最大的更改

QUIC(快速UDP网络连接):多路复用无阻塞,首次握手需要1RTT完成密钥交换,随后就直接发送数据,通过Connection ID标识连接

HTTP什么时候超时

HTTP可以设置keep-alive timeout 当TCP闲置超过这个时间就会关闭

也可以由tcp实现,闲置keep-alive timeout后发送侦测包,如果没有回复,那么就每隔一段时间(tcp_keepalive_intvl)再发一次,知道发送了tcp_keepalive_probes次,就会丢弃该连接

请介绍下HTTPS?

端口号位443,加入了SSL/TSL协议,使得报文可以加密传输,TCP握手后,还需要进行SSL/TSL握手

包含以下机制:

        信息加密:保证信息不被窃取

        校验机制:无法篡改信息内容

        身份证书:证明自己是自己

HTTPS的工作流程:

1.客户端发出HTTPS请求,连接服务器443端口

2.服务器由一套数字证书,发送给客户端

3.客户端收到证书以后,验证证书合法性,如果安全,就会生成一个随机的对称密钥,用证书的公钥加密

4.客户端将公钥加密后的密钥发送给服务器

5.服务器用之前保留的私钥对其进行非对称解密,得到客户端的密钥,然后用客户端密钥对返回数据进行对称加密,并发给客户端

6.客户端解密,得到数据

HTTP协议的无状态?

服务器端不会保存任何客户端的信息

但是我们可以使用session和cookie来保存信息

cookie 是客户端的一小块文本串的数据,客户端向服务器端发送请求的时候,服务器端会返回一个cookie,再客户端下次发起请求的时候,服务器可以根据这个cookie判断用户的身份和状态,保存的位ASCLL

session

服务器和客户端一次会话的过程,保存在服务器上,可以保存任意类型数据

使用cookie中存储sessionid ,那么当客户端发送cookie的时候,服务器就能从cookie中得到session,然后查找对应session信息,分布式下可以使用redis分布式缓存实现

如果无法使用cookie,就本地存储在客户端中,然后拼接到url中或者放到header中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/80795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vector和list

一、Vector和list的区别——从“它们是什么”到“区别在哪儿” 1. 它们是什么? Vector:类似于一排排整齐的书架(数组),存放元素时,元素排成一条线,连续存储。可以很快通过编号(索引…

VCS X-PROP建模以及在方针中的应用

VCS X-PROP建模以及在方针中的应用 摘要:VCS X-Prop(X-Propagation)是 Synopsys VCS 仿真工具中的一种高级功能,用于增强 X 态(未知态)和 Z 态(高阻态)在 RTL 仿真中的建模和传播能力…

HPE ProLiant DL360 Gen11 服务器,配置 RAID 5 教程!

今天的任务,是帮客户的一台HPE ProLiant DL360 Gen11 服务器,配置RAID 5。依然是按照我的个人传统习惯,顺便做一个教程,分享给有需要的粉丝们。如果你在实际操作中,遇到了什么问题,欢迎在评论区留言&#x…

PyTorch深度神经网络(前馈、卷积神经网络)

文章目录 神经网络概述神经元模型多层感知机前馈神经网络网络拓扑结构数学表示基本传播公式符号说明整体函数视角 卷积神经网络卷积神经网络发展简史第一代(1943-1980)第二代(1985-2006)第三代(2006-至今)快…

三轴云台之控制算法协同技术篇

三轴云台的控制算法协同技术是确保云台在复杂动态环境下实现高精度、高稳定性运动控制的核心,其技术体系涵盖多传感器融合、多算法协同以及多目标优化三个关键维度。以下从技术架构与实现路径展开分析: 一、多传感器融合:构建环境感知基础 三…

Adobe DC 2025安装教程

一.软件下载 点此下载 二.软件安装

[Java实战]Spring Boot 整合 Freemarker (十一)

[Java实战]Spring Boot 整合 Freemarker (十一) 引言 Apache FreeMarker 作为一款高性能的模板引擎,凭借其简洁语法、卓越性能和灵活扩展性,在 Java Web 开发中占据重要地位。结合 Spring Boot 的自动化配置能力,开发者能快速构建动态页面、…

DeepSeek:开启能源领域智能化变革新时代

目录 一、DeepSeek 与能源领域变革的邂逅1.1 DeepSeek 在人工智能领域的地位与特点1.2 能源行业面临的挑战与变革需求1.3 DeepSeek 在能源领域应用的重要性和意义 二、能源政策解读与科普新助手2.1 能源政策解读的深度变革2.2 能源科普的创新使者 三、能源项目可行性分析新利器…

uniapp设置 overflow:auto;右边不显示滚动条的问题

设置了overflow:auto;或者其它overflow的属性不显示滚动条是因为在uniapp中默认隐藏了滚动条 解决方法: //强制显示滚动条 ::-webkit-scrollbar {width: 8px !important;background: #ccc !important;display: block !important;}//设置滚动条颜色.cu-…

hyper-v安装ubuntu后时磁盘空间扩容

使用hyper-v创建虚拟机Ubuntu 22.04,直接使用的是磁盘镜像,原磁盘空间只有12GB,明显不够用呀,现在想要扩展到50GB,准备开始。 1、先关闭Ubuntu,再hyper-v管理器中调整磁盘容量到50GB 2、进入虚拟机 3、准备…

Prometheus 的介绍与部署(入门)

一、什么是Prometheus; 1.介绍 Prometheus 是一个功能强大的监控工具,适用于各种环境。通过简单的安装和配置,可以快速实现对系统和服务的监控。无论是单机环境、容器化环境还是 Kubernetes 集群,Prometheus 都能提供灵活…

Angular 知识框架

一、Angular 基础 1. Angular 简介 Angular 是什么? 基于 TypeScript 的前端框架(Google 维护)。 适用于构建单页应用(SPA)。 核心特性 组件化架构 双向数据绑定 依赖注入(DI) 模块化设计…

注解和 XML 两种方式有什么区别?

注解和 XML 是两种常见的配置方式(尤其在 Java 开发中,如 Spring 框架),它们的主要区别体现在配置方式、代码耦合性、可读性、维护性等方面。以下是两者的对比: 1. 配置方式 注解(Annotation) 在…

Python爬虫实战:研究拦截器,实现逆向解密

1. 案例背景与研究目标 1.1 研究背景 在数字化时代,网络数据成为重要资源。许多网站通过加密技术保护数据传输,如电商平台的价格信息常以加密形式存在。爬虫技术与逆向工程的结合,为合法获取和分析此类数据提供了解决方案。 1.2 研究目标 开发完整的 Python 爬虫系统,实现…

Math工具类全面指南

Math工具类全面指南 前言一、Math 类的基础特性1.1 类的声明与常量1.2 数据类型支持 二、基础算术运算2.1 绝对值运算2.2 取整运算2.2.1 floor():向下取整2.2.2 ceil():向上取整2.2.3 round():四舍五入取整 2.3 最大值与最小值 三、三角函数与…

嵌入式C语言中指针的不同类型及其特点分析

在 C 语言中,指针的类型主要可以分为以下几类: 1.1 基本类型指针 基本类型指针是指指向基础数据类型的指针,通常用于存储变量的地址。它们的类型与指向的变量类型相同。常见的基本类型指针包括: 整型指针:int *p,p是一个指向整型数据的指针。字符型指针:char *p,p是…

gd32e230c8t6 keil6工程模板

下载固件gd32e230c8t6固件官方下载(需登录) 或 蓝奏云 新建一个文件夹,把固件压缩包里的里的Firmware和Template拖进去 keil新建gd32e230c8工程 必须勾选CMSIS-CORE 新建一个文件夹,双击任意改名 点击manage project it…

SQL看最多的数据,但想从小到大排列看趋势

SQL 查询:从 test 表中获取本月的数据,并对数量最多的前10个流程按数量升序排序 假设表结构 test 表包含请求信息。workflow_base 包含流程的基本信息。 CREATE TABLE test (requestid INT, -- 请求IDworkflowid INT, -- 流程IDcurr…

WebGL知识框架

一、WebGL 基础概念 1. WebGL 简介 是什么? 基于 OpenGL ES 的浏览器 3D 图形 API,直接操作 GPU 渲染。 核心特点 底层、高性能、需手动控制渲染管线。 依赖 JavaScript 和 GLSL(着色器语言)。 与 Three.js 的关系 Three.js…

LabVIEW电涡流传感器自动校准系统

在工业生产中,尤其是大型旋转机械的运行监测环节,电涡流传感器的精准校准极为关键。传统手动校准方式存在诸多弊端,如人工参与度高、操作重复、效率低下等,难以满足现代工业快速发展的需求。基于 LabVIEW 开发的电涡流传感器自动校…