8月1日上课内容 第一章web基础与http协议

news2024/11/26 4:51:41

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,服务器确认后,
立即进入关闭状态。然后进行关闭连接。


 

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

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

相关文章

Android Ble蓝牙App(三)特性和属性

Ble蓝牙App&#xff08;三&#xff09;特性使用 前言正文一、获取属性列表二、属性适配器三、获取特性名称四、特性适配器五、加载特性六、显示特性和属性七、源码 前言 在上一篇中我们完成了连接和发现服务两个动作&#xff0c;那么再发现服务之后要做什么呢&#xff1f;发现服…

Java循环:探索迭代的世界

文章目录 1. for循环2. while循环3. do-while循环总结 循环是编程中的重要概念&#xff0c;它允许我们重复执行特定的代码块&#xff0c;帮助我们简化复杂的任务和提高代码的效率。在Java中&#xff0c;循环有多种形式&#xff0c;包括for循环、while循环和do-while循环。本篇博…

玩转SWAT模型——最全面SWAT模型教程【建模方法、实例应用、高级进阶】

目录 第一部分&#xff1a;SWAT模型实践部分 第二部分&#xff1a;SWAT模型【进阶部分】 更多推荐 【专家】&#xff1a;刘老师【副教授】&#xff0c;北京重点高校资深专家&#xff0c;和美国SWAT软件开发方长期合作&#xff0c;拥有丰富的科研及工程技术经验&#xff0c;长…

虫情监测仪介绍—技术原理、功能优势是什么?

KH-CQPest虫情监测仪是做好虫情监测的重要设备&#xff0c;利用虫情监测仪能够对农业大田、智慧温室、林业等场景的害虫分布情况及害虫种类进行监测&#xff0c;协助人们制定合理的防治措施。 1.技术原理&#xff1a; KH-CQPest虫情监测仪采用光学诱虫原理&#xff0c;配合传感…

【嵌入式学习笔记】嵌入式入门3——串口USART

1.数据通信的基础概念 1.1.串行/并行通信 数据通信按数据通信方式分类&#xff1a;串行通信、并行通信 1.2.单工/半双工/全双工通信 数据通信按数据传输方向分类&#xff1a;单工通信、半双工通信、全双工通信 单工通信&#xff1a;数据只能沿一个方向传输半双工通信&…

架构训练营学习笔记:6-2 微服务基础选型

基础选型 微服务基础设施架构 优先级 其中&#xff0c;核心 就是服务注册、服务发现、服务路由。 模式1-嵌入SDK 模式2-反向代理式 模式3-网络代理式&#xff08;Service Mesh&#xff09; 模式对比 常见微服务框架选择 嵌入SDK-dubbo Spring Cloud 反向代理式 APISIX …

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor

前言 在做性能测试时&#xff0c;如果有一个性能测试结果实时展示的页面&#xff0c;可以极大的提高我们对系统性能表现的掌握程度&#xff0c;进而提高我们的测试效率。但是我们每次打开Jmeter都会有几个硕大的字提示别用GUI模式进行负载测试&#xff0c;而且它自带的监视器效…

LeetCode-Java(06)

24. 两两交换链表中的节点 非递归解法 class Solution {public ListNode swapPairs(ListNode head) {ListNode pre new ListNode(0);pre.next head;ListNode temp pre;while(temp.next ! null && temp.next.next ! null) {ListNode start temp.next;ListNode end …

指标体系构建与验证

文章目录 知网论文1 本土化计算思维评价指标体系的构建与探索——基于1410名高中生的样本分析与验证2 企业集团人力资源管理质量评价指标体系的构建3 基于知识管理的创新型企业评价指标体系的构建及验证4 中国公民科学素质测评指标体系研究5 中国企业劳动关系评价指标体系的改进…

Linux ❀ Yum源安装RPM包常见问题与解决方法

文章目录 1、Yum源仓库检查2、执行安装报错2.1 RPM包缺失2.2 进程锁定2.3 未完成事务2.4 RPM包冲突 1、Yum源仓库检查 404错误多为yum源无法访问导致&#xff0c;检查yum仓库是否配置正确&#xff0c;同时确认baseurl连通性。 $ cd /etc/yum.repos.d/ $ cat ${yum_file} | gr…

ETHERCAT转PROFIBUS连接到300plc的配置方法

由于捷米JM-DP-ECT&#xff0c;是自主研发的一款PROFIBUS从站功能的通讯网关&#xff0c;它的主要功能是将ETHERCAT设备接入到PROFIBUS网络中生产环境比较复杂有多个设备采用不同的协议这极大的阻碍了&#xff0c;各个设备的数据互通。 JM-DP-ECT这个小小的网关可不简单&#x…

thunder gbm

文章目录 背景参考官网信息训练调参模型保存推理 背景 想在 GPU 上使用使用闪电般快速的提升方法&#xff1f;了解这个库就好了。在很多任务上&#xff0c;它都比 LightGBM 和 XGBoost 快。 ThunderGBM 的主要特征如下&#xff1a; 通常是其它库的 10 倍。 支持 Python&#x…

记一次数据批量插入实践

背景&#xff1a; 2023月7月份入职新公司&#xff0c;初来乍到还没参入到具体的项目中&#xff0c;技术负责人安排写一个批量处理数据的服务&#xff0c;于是便有了以下文章。 数据流程大概是这样&#xff0c;从clickhouse表中获取数据&#xff0c;并从elasticserach中根据业务…

【VALSE2023】0610 邓成/杨二昆《多模态融合感知年度进展综述》

from&#xff1a; https://www.bilibili.com/video/BV1YP411t73r 文章目录 多模态融合感知理论多模态预训练模型多模态感知理解多模态内容生成 总结和展望 多模态融合感知理论 多模态预训练模型 多模态感知理解 多模态内容生成 总结和展望

flink如何监听kafka主题配置变更

背景&#xff1a; 从前一篇文章我们知道flink消费kafka主题时是采用的手动assign指定分区的方式&#xff0c;这种消费方式是不处理主题的rebalance操作的&#xff0c;也就是消费者组中即使有消费者退出或者进入也是不会触发消费者所消费的分区的&#xff0c;那么疑问就来了&am…

用户的管理

一、用户的管理 useradd、usermod、userdel 二、用户组的管理 groupadd、groupmode、groupdel 三、用户登录情况查看 w可以看用户操作 其他可以看用户ip 四、用户的提权&#xff08;重点&#xff09; 三种方法&#xff1a;1、su - 用户名&#xff08;需要该用户名的密码&a…

Pandas 的Merge函数详解

在日常工作中&#xff0c;我们可能会从多个数据集中获取数据&#xff0c;并且希望合并两个或多个不同的数据集。这时就可以使用Pandas包中的Merge函数。在本文中&#xff0c;我们将介绍用于合并数据的三个函数 merge、 merge_ordered、 merge_asofmerge merge函数是Pandas中…

Kotlin~Mediator中介者模式

概念 创建一个中介来降低对象之间的耦合度&#xff0c;关系”多对多“变为“一对多”。 角色介绍 Mediator&#xff1a;抽象中介者&#xff0c;接口或者抽象类。ConcreteMediator&#xff1a;中介者具体实现&#xff0c;实现中介者接口&#xff0c;定义一个List管理Colleagu…

【频率派和贝叶斯派】进阶学习-贝叶斯方法原理、基本结构、代码构建+图模型

文章目录 前言1.理论支撑贝叶斯思考模式贝叶斯定理贝叶斯公式 2. 应用转化2.1 拼写检查 3. 贝叶斯网络3.1 贝叶斯网络的定义3.2 三个形式和实际案例的构建关系 前言 频率派与贝叶斯派各自不同的思考方式&#xff1a; 1.频率派把需要推断的参数θ看做是固定的未知数&#xff0c…

草图大师su曲面怎么推拉?SketchUp推拉怎么使用?

首先我们需要安装这个推拉插件&#xff0c;然后打开草图大师&#xff0c;打开超级推拉工具栏&#xff0c;可以看到&#xff0c;超级推拉主要有以下几种推拉方式&#xff1a;J联合推拉、R近似值推拉、V矢量推拉、N法线推拉、X挤出推拉、F跟随推拉。 首先选择你要进行推拉操作的物…