8月1日上课内容 第一章web基础与http协议
dns与域名
网络是基于tcp/ip协议进行通信和连接的
应用层--传输层---网络层----数据链路层-----物理层
ip地址,我们每一台主机都有一个唯一的地址标识(固定的ip地址),区分用户和计算机通信。
ip地址:32位二进制数组成的,不方便记忆
192.168.233.61
域名:
www,baidu.com
dns解析: 就是把域名解析成IP地址,方便通信。
dns解析的方式:
1、/etc/hosts
负责快速解析的文件,包含了ip与主机名之间的映射关系,如果没有dns服务器的情况下,可以使用/etc/hosts文件来完成解析和映射。
2、/etc/resolv.conf
dns客户端的配置文件,设置dns服务器的ip和域名。还包含了主机域名的搜索顺序。主要是域名解析服务器使用的配置文件。
它的源头在这
3、修改网卡配置文件
ifcfg-ens33
生效顺序:1、hosts 2、网卡配置文件 3、resolv.conf
dns域名解析服务器,现在都由运营商来做。
域名解析服务器作用:
1、保持和维护域名空间。
2、响应解析请求
解析端:(客户端)
根域------顶级域------二级域------子域------主机名
注册域名(了解):
1、准备材料------域名注册网站------注册,申请------>正式使用。
html:超文本标记语言,是一种规范的,标准的语言格式。网页文件本身就是一个文本文件,html通过标记的方式,告诉浏览器如何显示文本当中的内容。html文件是一个文本文件,所有能够生成txt文件的工具,都可以进行编辑。修改之后的文件的后缀名只能是 .html或者.htm
网页都是基于html来写的(F12查看)
可以修改
通过左边的图标可以进行定位,指定内容修改
为什么是.htm?
这是网站服务的默认配置,只能识别.html或者.htm后缀名格式的文件
如果文件改了格式,配置文件也要和它保持一致,否则就会找不到
网页:就是一个纯文本格式的文件,用html语言来进行编写的。是用浏览器翻译成页面的形式显示出来的。
网站:是由多个页面组成的,网页的结合体。主页:打开网站之后出现的第一个页面,就是网站的主页(也可以理解为首页)。
域名:浏览网页时输入的网址。
http/https
用来传输页面的通信协议,https就是加密的,他们都是一种通信协议,基于tcp协议,端口号,http默认是80,https默认:443
netstat -antp | grep nginx 查看
URL:万维网寻址系统,唯一标识。
合起来完整的格式,包含域名和URI,是URL
https://www.bilibili.com/
URI:
https://www.bilibili.com/v/dance/?spm id from=333.1007.0.0
从/v/开始后面就是URI
超链接:超链接将网站中的不同页面连接起来。
发布
将制作好的网页上传到服务器,供用户访问
html的语法(了解即可):
<html>
<head> 网页的内容描述</head>
<body>网页的内容</body>
</html>
头标签中常用的标签:
<title> 定义了文档的标题
<base> 定义了页面链接标签的默认链接地址
<link> 定义了一个文档和外部资源之间的关系
<meta> 定义了 HTML 文档中的元数据
<script> 定义了客户端的脚本文件
<style> 定义了 HTML 文档的样式文件
内容当中常用的标签(都是了解即可):
<table> 定义表格
<tr> 定义表格中的一行
<td> 定义表格当中某一行的一列
<img> 定义图片
<a> 超链接
<font> 定义字体
web概述
打开的页面也可以理解为web页面
现在主流的是web2.0
可以实现双向的交互
例如:发弹幕
视频是静态页面
点赞、投币等都是动态请求
因为web2.0用户交互
产生了静态页面和动态页面:
静态页面就是标准的html文件
扩展名都是.htm .html
里面可以包含图片,文本,声音,动画视频等。
是网站建设的基础。
没有后台数据,不包含可交互的内容。
更新起来比较麻烦,一般用于展示型网站。
静态页面的特点:
1、静态页面的URL是固定的。一般不包含?
2、页面一经发布,都是保存在网站的服务器上的。
3、静态页面相对稳定,内容很少发生变化,容易被搜索引擎解锁。
4、没有数据库的支持,制作和维护的工作量都比较大。网站的信息量如果太大,单纯使用静态页面比较困难。
5、没有交互性,只能看,功能上受限很大。
6、浏览的速度较快,因为不需要连接后端数据库。
动态页面:
1、网页URL是不固定的,用户可以和后台数据进行交互
2、动态页面的网址一般都会包含一个特殊标记------------?
3.动态页面的语音:PHP ISP PYTHON RUBY TOMCAT (JAVA)
动态页面的特点:
1、交互性
2、自动跟新
3、特效,每个人进入页面的时候,会有不同的效果。
总结:
静态页面就是 看
动态页面 可以交互
web1.0 wbe2.0核心的区别就是交互
web3.0 交互,场景融合(类似于头号玩家中的场景,元宇宙)
http协议:
httpd程序名,apache服务名
http协议,超文本传输协议。是互联网上引用最广泛的网络协议之一。
基于tcp协议的应用层的传输协议。面向用户。
客户端和服务端之间进行数据传输的一种规则。
工作流程(重点,面试题)
1、客户端和服务端进行tcp连接
三次握手------建立连接。
2、客户端发送http请求,服务端接收到http请求之后,响应客户端的请求。
3、通过socket接口,通过端口进行通信。
4、响应到达客户端,解析的过程(浏览器解析),用户查看,使用,访问。
5、访问、使用、查看,结束之后,断开连接,四次挥手。
http的一种无状态的协议,它本身不会对发送过的请求和响应的通信进行持久化处理。链接保持
为了http能够快速的大量的进行处理事务,提高效率
连接保持的需要的
cookie:记录用户的登陆状态,跟踪统计用户访问网站的习惯,识别用户身份,保存用户信息。
这个是服务器保留在用户计算机上的小文件。
http协议本身自带的连接保持功能
http0.9
http1.0
http1.1 自带连接保持功能,长连接。
长连接:一次性获取页面文件的所有信息,不再需要分开处理请求。所以速度大大加快。并行。
连接保持:keep-alive,在一个tcp连接上,可以传送多个http的请求和响应。减少了建立和关闭连接的消耗以及延迟。
连接保持的有时间的,不是无限的。默认开启的。65秒
连接资源占用:长时间保持,会降低服务器的负载,如果是高并发,会使服务器耗尽资源
连接状态管理:长连接需要维护连接状态。服务器就需要跟踪每个连接的状态,增加服务器的负担(集群就诞生了)。
主流的就是http1.1
https:加密通信协议,加密数据传输。加密过程涉及客户端和服务器之间进行秘钥交换,确保只有合法的接收方,才能够解密数据。
证书:https使用数字证书验证身份。
https:电子商务,银行网站。
加密解密会对访问速度有一定的影响,但是为了安全可以忽略不计
http的请求方式:
1、请求头
请求头当中包含请求体。
请求体当中的内容:
Accept:客户端可以接受的数据类型
Accept-Encoding: 客户端可以接受的编码格式
Accept-Language:客户端可以支持的语言类型。
Cache-Control: 缓存时间,图片或者音频文件的缓存时间缓存指的是保留在本地的时间,下一次再访问图片,不需要再去服务端发起请求了,提高访问速度
Connection: 告诉服务器处理请求连接。一般默认都是keep-alive,连接保持,默认65秒
keep-alive: 告诉服务器,别急着关闭连接,保持一下段时间
请求方式:get 就是用来向服务器发起请求。http协议中的get,就是请求。
post也是请求的一种,post是向后台发数据。向服务器会添加数据,也可以改变服务器上的数据。
get方法:
1、从指定服务器获取数据
2、get请求可以被缓存
3、get请求会保存在浏览器的记录中,cookie
4、get请求的长度,是有限制的
就是获取数据
post:
也是请求的一种,提交数据给服务器处理
1、post请求不能缓存
2、post请求也不会记录在浏览器的记录当中
3、请求体的长度也没有限制。
post就是发数据,主要用于接口测试
状态码,响应码,服务器来进行提供的(面试会问,工作中用得到):
请求之后,服务器收到请求会有一个回应,响应,同时会反馈一个响应码
请求状态的响应码:
1xx
2xx
3xx
4xx
5xx
100-101 信息显示
200-206 成功 只要状态码的200,统统都是成功。
300-305 重定向
400-415 客户端错误 请求失败,获取资源失败
500-505 服务端错误 响应失败
200:成功 ok
301:请求的页面跳转
304:重定向到缓存。
403:禁止访问
404:请求页面找不到
500:服务器内部错误
502:网关失效
503:服务不可用
504:网关请求超时
通信套接字(也很重要)
socket:
实现不同主机进行通信和数据交换
进程间传输的标志:ip 端口
http协议当中socket的作用:
1、客户端套接字:定义唯一的客户进程
2、服务端套接字:定义了一个唯一的服务器进程。
套接字调用的相关接口
socket()创建端口
bind () 绑定ip和端口
listen() 监听,等待连接
accept0 接受请求
connect () 请求连接建立
write () 发送
read () 接受
ESTABLISHED 连接已经建立,正在传输数据
close()关闭连接
使用nc工具的模拟实验
nc -l 8888建立通信链接
等待连接:
nc 192.168.233.10 8888
建立连接之后的连接状态就变为了estab
发送消息:
附:
http协议请求流程分析详细版
用户输入URL(地址链接)(http://www.baidu.com:80/tools.html)客户端获取到端口及主机名后,
客户端利用DNS解析域名,首先客户端的浏览器会先找自身的缓存,
如果有解析结束,如果没有客户端会去找host文件,
如果host文件没有的话,客户端会去找本地的DNS缓存服务器,
本地的DNS缓存服务器没有的话,缓存服务器会去找根域,根域没有,
会返回一个.com.然后本地缓存服务器会去找顶级域,顶级域没有的话会返回baidu.com.,
然后本地缓存服务器会去找二级域,二级域解析完后会返回客户端。
客户端解析到IP地址后会通过TCP的三次握手与服务器建立连接,
首先客户端向服务器发送请求连接报文,SYN=1初始序号seq为x,
这时客户端进入SYN-SENT状态,服务器确认请求报文ACK=1,SYN=1,确认序号ACK=X+1,
服务器产生的初始序号seq=y,回复客户端确认连接,此时服务器进入SYN-RCVD状态,
客户端接受后确认报文ACK=1,ACK=y+1,客户端又重组序号为x+1。
TCP连接已经建立,客户端进入ESTABLISHED 状态,当服务器收到客户端的确认后,
也会进入 ESTABLISHED 状态。客户端连接到IP地址,发送httpGET的请求,从服务器读取http响应。
之后断开连接时,需要通过TCP的四次挥手完成,
客户端向服务器发送断开连接请求报文,FIN=1,ACK=1,序号为u,
客户端处于FIN—WAIT-1(终止等待1)状态,服务器确认报文ACK=1,
确认序号为ACK=u+1,服务器的序号为v,回复客户端,
服务器服务端处于CLOSE—WAIT(关闭等待)状态,
客户端接受确认报文ACK=1,确认序号ACK=v+1,客户端重组序号为seq=u+1,
客户端处于FIN—WAIT-2(终止等待2)状态,然后服务器也想让客户端断开连接,
就发送了断开连接请求,FIN=1,ACK=1,服务器重组序号为w,
服务器服务端处于LAST—ACK(最后确认)状态,
客户端接受后确认报文ACK=1.确认序号为ACK=w+1,客户端序号为u+1,
客户端进入CLOSED(时间等待)状态,等待最长报文段寿命2*MSL,服务器确认后,
立即进入关闭状态。然后进行关闭连接。
相关文章:

8月1日上课内容 第一章web基础与http协议
dns与域名 网络是基于tcp/ip协议进行通信和连接的 应用层--传输层---网络层----数据链路层-----物理层 ip地址,我们每一台主机都有一个唯一的地址标识(固定的ip地址),区分用户和计算机通信。 ip地址:32位二进制数组成的,不方便记忆 192.168.…...

Gson 添加数据默认值问题记录
问题:在用Gson add(key(string类型),value(必须是JsonElement子类))时发现,value 传了 "" 空字符串(非null),默认解析后返回null&#…...

利用Arthas+APM监控进行Java性能深度定位
大家可能都用过APM监控,包括开源的Skywalking、商用的卓豪(ZOHO)ManageEngine APM应用性能监控、以及云监控产品如听云(Server监控),这些APM监控产品大大方便了我们实时监控应用性能,并实现性能…...

【BASH】回顾与知识点梳理(十一)
【BASH】回顾与知识点梳理 十一 十一. 八至十章知识点总结及练习11.1 总结11.2 练习情境模拟题一:透过 grep 搜寻特殊字符串,并配合数据流重导向来处理大量的文件搜寻问题。情境模拟题二:使用管线命令配合正规表示法建立新指令与新变量。 该系…...

vue2-diff算法
1、diff算法是什么? diff算法是一种通过同层的树节点进行比较的高效算法。 其有两个特点: 比较只会在同层级进行,不会跨层级进行。 在diff比较的过程中,循环从两边向中间比较。 diff算法在很多场景中都有应用,在vue中&…...

SpringBoot使用redis作为缓存的实例
目录 什么是缓存? 缓存的作用? 缓存的成本? 实际项目中的应用 代码展示 什么是缓存? 缓存就是数据交换的缓冲区(称作Cache [ kʃ ] ),是存贮数据的临时地方,一般读写性能较高。 缓…...

vue3使用vue3-seamless-scroll插件
1、局部引入 import vueSeamlessScroll from "vue-seamless-scroll"; 2、注册 components: { vueSeamlessScroll, }, 3、使用 <vue3-seamless-scroll :list"list1" class"scroll" step"0.2"><div class"item"…...

QT开发学习相关笔记
QT中配置文件读取 QT中使用的config文件为:xxx.ini文件,基本格式如下: 使用 QSetting(QT自带类)中的相关接口实现设置配置文件数据,或者读取数据。 读取配置文件路径设置如下,其中 iniPath为设置路径 ne…...

拆分PDBQT文件并将其转换为PDB格式
拆分PDBQT文件转为PDB格式 1. vina_split拆分PDBQT文件 假设你用AutoDock Vina做了对接,那么所有预测的结合构象都被放入一个多构象 PDBQT 文件中,如果需要拆分后进行可视化分析,那么Vina官方自带了vina_split来进行拆分。下面是vina_split…...

Reinforcement Learning with Code 【Code 4. DQN】
Reinforcement Learning with Code 【Code 4. DQN】 This note records how the author begin to learn RL. Both theoretical understanding and code practice are presented. Many material are referenced such as ZhaoShiyu’s Mathematical Foundation of Reinforcement…...

Python3 高级教程 | Python3 正则表达式(一)
目录 一、Python3 正则表达式 (一)re.match函数 (二)re.search方法 (三)re.match与re.search的区别 二、检索和替换 (一)repl 参数是一个函数 (二)comp…...

奥威BI系统:零编程建模、开发报表,提升决策速度
奥威BI是一款非常实用的、易用、高效的商业智能工具,可以帮助企业快速获取数据、分析数据、展示数据。值得特别注意的一点是奥威BI系统支持零编程建模、开发报表,是一款人人都能用的大数据分析系统,有助于全面提升企业的数据分析挖掘效率&…...

海康威视摄像头二次开发_云台控制_视频画面实时预览(基于Qt实现)
一、项目背景 需求:需要在公司的产品里集成海康威视摄像头的SDK,用于控制海康威视的摄像头。 拍照抓图、视频录制、云台控制、视频实时预览等等功能。 开发环境: windows-X64(系统) + Qt5.12.6(Qt版本) + MSVC2017_X64(使用的编译器) 海康威视提供了设备网络SDK,设备网…...

单片机外部晶振故障后自动切换内部晶振——以STM32为例
单片机外部晶振故障后自动切换内部晶振——以STM32为例 作者日期版本说明Dog Tao2023.08.02V1.0发布初始版本 文章目录 单片机外部晶振故障后自动切换内部晶振——以STM32为例背景外部晶振与内部振荡器STM32F103时钟系统STM32F407时钟系统 代码实现系统时钟设置流程时钟源检测…...

Matlab实现决策树算法(附上多个完整仿真源码)
决策树是一种常见的机器学习算法,它可以用于分类和回归问题。在本文中,我们将介绍如何使用Matlab实现决策树算法。 文章目录 1. 数据预处理2. 构建决策树模型3. 测试模型4. 可视化决策树5. 总结6. 完整仿真源码下载 1. 数据预处理 在使用决策树算法之前…...

java中异步socket类的实现和源代码
java中异步socket类的实现和源代码 我们知道,java中socket类一般操作都是同步进行,常常在read的时候socket就会阻塞直到有数据可读或socket连接断开的时候才返回,虽然可以设置超时返回,但是这样比较低效,需要做一个循环来不停扫描…...

ElasticSearch7.6入门学习笔记
在学习ElasticSearch之前,先简单了解一下Lucene: Doug Cutting开发 是apache软件基金会4 jakarta项目组的一个子项目 是一个开放源代码的全文检索引擎工具包不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的…...

《面试1v1》ElasticSearch架构设计
🍅 作者简介:王哥,CSDN2022博客总榜Top100🏆、博客专家💪 🍅 技术交流:定期更新Java硬核干货,不定期送书活动 🍅 王哥多年工作总结:Java学习路线总结…...

tomcat和nginx的日志记录请求时间
当系统卡顿时候,我们需要分析时间花费在哪个缓解。项目的后端接口可以记录一些时间,此外,在我们的tomcat容器和nginx网关上也可以记录一些有关请求用户,请求时间,响应时间的数据,可以提供更多的信息以便于排…...

数据结构——红黑树基础(博文笔记)
数据结构在查找这一章里介绍过这些数据结构:BST,AVL,RBT,B和B。 除去RBT,其他的数据结构之前的学过,都是在BST的基础上进行微小的限制。 1.比如AVL是要求任意节点的左右子树深度之差绝对值不大于1,由此引出…...

盘点帮助中心系统可以帮到我们什么呢?
在线帮助中心系统是一种强大的软件系统,可以让我们用来组织、管理、发布、更新和维护企业的宝贵知识库和用户文档。今天looklook就详细讲讲,除了大众所熟知的这些,帮助中心系统还有什么特别作用呢? 帮助中心系统的作用 1.快速自助…...

Web3 solidity编写交易所合约 编写ETH和自定义代币存入逻辑 并带着大家手动测试
上文 Web3 叙述交易所授权置换概念 编写transferFrom与approve函数我们写完一个简单授权交易所的逻辑 但是并没有测试 其实也不是我不想 主要是 交易所也没实例化 现在也测试不了 我们先运行 ganache 启动一个虚拟的区块链环境 先发布 在终端执行 truffle migrate如果你跟着我…...

概念解析 | 生成式与判别式模型在低级图像恢复与点云重建中的角力:一场较量与可能性探索
注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:生成式模型与判别式模型在低级图像恢复/点云重建任务中的优劣与特性。 生成式与判别式模型在低级图像恢复与点云重建中的角力:一场较量与可能性探索 1. 背景介绍 机器学习…...

【云原生】kubectl命令的详解
目录 一、陈述式资源管理方式1.1基本查看命令查看版本信息查看资源对象简写查看集群信息配置kubectl自动补全node节点查看日志 1.3基本信息查看查看 master 节点状态查看命名空间查看default命名空间的所有资源创建命名空间app删除命名空间app在命名空间kube-public 创建副本控…...

uniapp两个单页面之间进行传参
1.单页面传参:A --> B url: .....?code JSON.stringify(param), 2.单页面传参B–>Auni.$emit() uni.$on()...

uniapp运行项目到iOS基座
2022年9月,因收到苹果公司警告,目前开发者已无法在iOS真机设备使用未签名的标准基座,所以现在要运行到 IOS ,也需要进行签名。 Windows系统,HBuilderX 3.6.20以下版本,无法像MacOSX那样对标准基座进行签名…...

HTTP——九、基于HTTP的功能追加协议
HTTP 一、基于HTTP的协议二、消除HTTP瓶颈的SPDY1、HTTP的瓶颈Ajax 的解决方法Comet 的解决方法SPDY的目标 2、SPDY的设计与功能3、SPDY消除 Web 瓶颈了吗 三、使用浏览器进行全双工通信的WebSocket1、WebSocket 的设计与功能2、WebSocket协议 四、期盼已久的 HTTP/2.01、HTTP/…...

Redis 在电商秒杀场景中的应用
Redis 在电商秒杀场景中的应用 一、简介1.1 简介1.2 场景应用 二、Redis 优势与挑战2.1 优势2.2 秒杀场景的挑战 三、应用场景分析3.1 库存预热代码示例 3.2 分布式锁3.3 消息队列 四、系统设计方案4.1 架构设计4.2 技术选型4.3 数据结构设计 五、Redis 性能优化5.1 集群部署5.…...

大麦订单生成器 大麦一键生成订单
后台一键生成链接,独立后台管理 教程:修改数据库config/Conn.php 不会可以看源码里有教程 下载源码程序:https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3...

Java实现Google cloud storage 文件上传,Google oss
storage 控制台位置 创建一个bucket 点进bucket里面,权限配置里,公开访问,在互联网上公开,需要配置角色权限 新增一个访问权限 ,账号这里可以模糊搜索, 角色配置 给allUser配置俩角色就可以出现 在互联…...