二阶段web基础与http协议
dns与域名
网络是基于tcp/ip协议进行通信和连接的
应用层-----传输层-----网络层-----数据链路层-----物理层
ip地址,每一台主机都有一个唯一的地址标识(固定的ip地址)
1.区分用户和计算机
2.通信
ip地址的问题在于32位二进制数组成的,不方便记忆
192.168.233.61 点分十进制
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.响应解析请求
解析端(客户端)
跟域-----顶级域-----二级域-----子域----主机名
html:超文本标记语言,是一种规范的,标准的语言格式
网页文件本身就是一个文本文件,html通过标记的方式,告诉浏览器,如何显示文本当中的内容,html文件是一个文本文件,所有能够生成txt文件的工具,都可以进行编辑,修改之后的文件的后缀名:.html 或者 .htm
网页:纯文本格式的文件,用html语言来进行编写,在用浏览器翻译成页面的形式显示出来
网站:是由多个页面组成的,网页的结合体
主页:打开网站后,出现的第一个页面,就是网站的主页,也可以说是首页
域名:浏览网页时,输入的网址
http/https 用来传输页面的通信协议,https是加密的,是一种通信协议,基于tcp协议,端口号,http默认端口80;https是443
URL:万维网寻址系统,唯一的表示
超链接:超链接将网站中的不同页面连接起来
发布:将制作好的网页上传到服务器,供用户访问
html的语法
<html>
<head>网页的内容描述信息</head>
<body>网页的具体内容</body>
</html>
头标前中常用的标签
<title>文档标题
<base>页面标签的链接地址
<script>客户端的脚本文件
<style>html文档的样式
内容当中常用的标签
<table>定义表格
<tr>定义表格中的一行
<td>定义表格中某一行的一列
<img>定义图片
<a>超链接
<font>定义字体
web.1.0 静态页面就是看 web.2.0 动态页面用户交互
静态页面和动态页面
静态页面就是标准的html文件
扩展名都是.htm .html
里面可以包含图片,文本,声音动画;是网站搭建的基础,早期的网站都是静态页面,没有后台数据,不包含可交互的内容,更新起来比较麻烦,一般用于展示型网站
静态页面的特点
1.URL是固定的,一般不包含以?为后缀
2.页面一经发布,都是保存在网站的服务器上
3.静态页面相对稳定,内容很少发生变化,容易被搜索引擎检索
4.没有数据库的支持,制作和维护的工作量,都比较大,网站的信息量如果太大,单纯的使用静态页面比较困难
5.没有交互性,功能上受限很大
6.浏览速度快,因为不需要连接数据库
动态页面
1.网页URL是不固定的,用户可以和后台数据进行交互
2.动态页面的网址中,一般包含一个特殊标记-----$?
3.动态页面的语言:php jsp python buby tomcat(java)
动态页面的特点
1.交互性 2.自动跟新 3.特效,每个人进入页面的时候,会有不同的效果
http协议:
httpd 程序名 apache 服务名
http协议,超文本传输协议,互联网上应用最广泛的网络协议,基于tcp协议的应用的传输协议,面向用户,客户端和服务端之间进行数据传输的一种规则
工作流程:
1.客户端和服务端进行tcp链接 :三次握手----建立连接
2.客户端发送http请求,服务端接收到http请求之后,响应客户端的请求
3.socke 接口,通过端口进行通信
4.响应到达客户端,解析的过程(浏览器),用户查看,使用,访问
5.访问,使用,查看,结束之后,断开连接,四次挥手
http是一种无状态的协议,本身不会对发送的请求和响应的通信进行持久化处理(连接保持),为了让http能够快速的大量的进行处理事务,提高效率
链接保持是需要的
cookie:记录用户的登陆状态,跟踪统计用户访问网站的习惯,识别用户身份,保存用户信息
这个是服务器留在用户计算机的小文件
http协议本身自带的连接保持功能
http1.1:自带链接保持功能,长连接
长连接:一次性获取页面的文件的所有信息,不再需要分开处理请求,所以速度大大加快,并行
连接保持:keep-alive,在一个tcp连接上可以传送多个http的请求和响应,减少了建立和关闭连接的消耗和延迟,连接保持是有时间,不是无限的,是默认开启的,60s
连接资源占用:长时间保持,会降低服务器的负载,如果是高并发,会使服务器耗尽资源
链接状态管理:长连接需要维护连接状态,服务器需要跟踪每个连接的状态,增加服务器的负担(集群的诞生)
http加密通信协议,加密数据传输,加密过程涉及客户端和服务器之间进行密钥交换,确保只有合法的接收方,能够解密数据
证书:https使用数字验证身份
https:电子商务,银行网站
加密解密会对访问速度有一定的影响
http的请求方式:
1.请求头
请求头当中包含请求体
请求体当中的内容
Accept:客户端可以接受的数据类型
Accept-Language:客户端可以接受的语言类型
User-Agent:浏览器的信息
Accpect-Encoding:客户端可以接受的编码格式
Host:表示请求的ip和端口号
Connection:告诉服务器请求连接如何处理
Keep-Alive:通知服务器回传数据不要马上关闭,保持一小段的连接
Closed:马上关闭
请求方式:get 就是用来向服务器发起请求,http协议中的get,就是请求
2.响应头
3.总览 General
post也是请求的一种,post是向后台发数据,向服务器会添加数据,也可以改变服务器上的数据
get方法:
1.从指定服务器获取数据
2.get请求是可以被缓存
3.get请求会保存在浏览器上的记录中,cookie
4.get请求的长度,是有限度的
post:也是请求的一种,提交数据给服务器处理
1.post请求不能缓存
2.post请求也不会记录在浏览器的记录当中
3.请求体的长度也没有限制
状态码,响应码,服务器来进行提供的
请求之后,服务器收到请求会有一个回应,响应,同时反馈一个响应码
请求状态的响应码:
1..:100-101 信息提示
2..:200-206 成功,请求响应成功,只要状态码是200,统统是成功
3..:300-305 重定向
4..:400-415 客户端错误,请求不到,获取资源失败
5..:500-505 服务端错误 响应失败
200 成功
301 请求的永久页面跳转
304 重定向到缓存
403 禁止访问(没有权限)
404 请求页面找不到 (请求的文件不存在)
500 服务器内部错误(配置文件名错了)
502 网管失效(可能是网络,可能是防火墙)
503 服务不可用(可能是网络,可能是防火墙)
504 网关请求超时 (可能是网络,可能是防火墙)
通信套接字
socket:实现不同主机进行通信和数据交换,进程间传输的标志ip:端口
http协议当中socket的作用:
1.客户机套接字:定义唯一的客户进程
2.服务端套接字:定义了一个唯一的服务器进程
套接字的相关接口
socket ()创建端口
bind ()绑定ip和端口
listen () 监听,等待连接
accept ()接受请求
connect ()请求连接建立
write () 发送
read () 接收
close 关闭连接
ESTABLISHED 连接已经建立,正在传输数据
nc 工具模拟实验
需要关防火墙 安全机制
自定义一个端口
ip地址是创建555端口的ip地址
相关文章:

二阶段web基础与http协议
dns与域名 网络是基于tcp/ip协议进行通信和连接的 应用层-----传输层-----网络层-----数据链路层-----物理层 ip地址,每一台主机都有一个唯一的地址标识(固定的ip地址) 1.区分用户和计算机 2.通信 ip地址的问题在于32位二进制数组成的&…...
SpringBoot+Freemark根据html模板动态导出PDF
SpringBootFreemark根据html模板导出PDF 1、引入maven2、两个工具类2.1 test.html模板2.2 test.html模板中的Freemark语法 3、controller导出pdf 1、引入maven 导出pdf的一些必要jar包 <dependency><groupId>org.projectlombok</groupId><artifactId>…...

XPath数据提取与贴吧爬虫应用示例
XPath数据提取与贴吧爬虫应用示例 XpathXpath概述Xpath Helper插件 XPath语法基本语法查找特定节点选取未知节点选取若干路径 lxml模块使用说明使用示例 百度贴吧爬虫 Xpath Xpath概述 XPath(XML Path Language)是一种用于在XML文档中定位和选择节点的语…...
字符串匹配-KMP算法
KMP算法,字符串匹配算法,给定一个主串S,和一个字串T,返回字串T与之S匹配的数组下标。 在学KMP算法之前,对于两个字符串,主串S,和字串T,我们根据暴力匹配,定义两个指针,i指…...

Java面向对象之UML类图
UML类图 表示 public 类型, - 表示 private 类型,#表示protected类型方法的写法:方法的类型(、-) 方法名(参数名: 参数类型):返回值类型...

【机器学习】西瓜书学习心得及课后习题参考答案—第4章决策树
这一章学起来较为简单,也比较好理解。 4.1基本流程——介绍了决策树的一个基本的流程。叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集&a…...
2023.8.2
2022河南萌新联赛第(三)场:河南大学\神奇数字.cpp //题意:给定三个正整数a b c,求x满足满足abc同余x的个数。 //这个考虑同余的性质,就是两个数的差去取模为0的数肯定是这两个数的同余数,。因此我们计算三个数两两之…...
windows运行窗口常用快捷键命令
winr打开运行窗口,然后输入快捷命令:(当然utools和win11搜索也挺好用的) cmd : 命令行窗口(命令提示符窗口、cmd窗口)regedit : 注册表mspaint : 画图工具services.msc : 本地服务设置(比如查看mysql服务是否启动成功)devmgmt.ms…...

HDFS的QJM方案
Quorum Journal Manager仲裁日志管理器 介绍主备切换,脑裂问题解决---ZKFailoverController(zkfc)主备切换,脑裂问题解决-- Fencing(隔离)机制主备数据状态同步问题解决 HA集群搭建集群基础环境准备HA集群规…...

安装win版本的neo4j(2023最新版本)
安装win版本的neo4j 写在最前面安装 win版本的neo4j1. 安装JDK2.下载配置环境变量(也可选择直接点击快捷方式,就可以不用配环境了)3. 启动neo4j 测试代码遇到的问题及解决(每次环境都太离谱了,各种问题)连接…...

ChatGPT结合知识图谱构建医疗问答应用 (二) - 构建问答流程
一、ChatGPT结合知识图谱 上篇文章对医疗数据集进行了整理,并写入了知识图谱中,本篇文章将结合 ChatGPT 构建基于知识图谱的问答应用。 下面是上篇文章的地址: ChatGPT结合知识图谱构建医疗问答应用 (一) - 构建知识图谱 这里实现问答的流程…...

聊天系统登录后端实现
定义返回的数据格式 # Restful API from flask import jsonifyclass HttpCode(object):# 响应正常ok 200# 没有登陆错误unloginerror 401# 没有权限错误permissionerror 403# 客户端参数错误paramserror 400# 服务器错误servererror 500def _restful_result(code, messa…...
Ajax笔记_01(知识点、包含代码和详细解析)
Ajax_01笔记 前置知识点 在JavaScript中 问题1:将数组转为字符串,以及字符串转为数组的方式。 问题2、将对象转为字符串,以及字符串转为对象的方法。 方法: 问题1: 将数组转为字符串可以使用 join() 方法。例如&…...

Eureka 学习笔记2:EurekaClient
版本 awsVersion ‘1.11.277’ EurekaClient 接口实现了 LookupService 接口,拥有唯一的实现类 DiscoveryClient 类。 LookupService 接口提供以下功能: 获取注册表根据应用名称获取应用根据实例 id 获取实例信息 public interface LookupService<…...
Spring引入并启用log4j日志框架-----Spring框架
<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://ma…...
Redis实现延时队列
缓存队列延时向接口报工,并支持多实例部署。 引入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-data</artifactId><version>3.17.4</version> </dependency> 注入RedisClient …...

无限遍历,Python实现在多维嵌套字典、列表、元组的JSON中获取数据
目录 背景 思路 新建两个函数A和B,函数 A处理字典数据,被调用后,判断传递的参数,如果参数为字典,则调用自身; 如果是列表或者元组,则调用列表处理函数B; 函数 B处理列表&#x…...
信息学奥赛一本通——1180:分数线划定
文章目录 题目【题目描述】【输入】【输出】【输入样例】【输出样例】【提示】 AC代码 题目 【题目描述】 世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入…...
SpringApplication对象的构建及spring.factories的加载时机
构建SpringApplication对象源码: 1、调用启动类的main()方法,该方法中调用SpringApplication的run方法。 SpringBootApplication public class SpringbootdemoApplication {public static void main(String[] args) {SpringApplication.run(SpringbootdemoApplication.class, …...

基于传统检测算法hog+svm实现图像多分类
直接上效果图: 代码仓库和视频演示b站视频005期: 到此一游7758258的个人空间-到此一游7758258个人主页-哔哩哔哩视频 代码展示: 数据集在datasets文件夹下 运行01train.py即可训练 训练结束后会保存模型在本地 运行02pyqt.py会有一个可视化…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...