简析“请求头”——可以用“头部字典”按需定制请求头

请求头是HTTP请求的重要部分,可以用“头部字典”按需定制请求头。


(笔记模板由python脚本于2024年07月12日 19:28:44创建,本篇笔记适合喜欢钻研web知识点的coder翻阅)


【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


请求头是HTTP请求的重要部分
简析“请求头”
(可以用“头部字典”按需定制请求头)


本文质量分:

96 96 96

本文地址: https://blog.csdn.net/m0_57158496/article/details/140362712

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ 简析“请求头”
    • 1、请求头的作用
    • 2、获取请求头的方法
    • 3、 自定义请求头
    • 4、urllib基本用法
      • 1. 网络请求
      • 2. 解码响应内容
      • 3. 请求头
      • 4. 错误处理
      • 5. URL 编码和解码
    • 5、URL解码
    • 6、页面解析
      • 1. 使用正则表达式(`re` 模块)
      • 2. 使用 BeautifulSoup
      • 3. 使用 XML 解析器
      • 4. 使用 JSON 解析器
    • 7、“请求头”的“部件”
    • 8、模拟浏览器访问url
      • 1. 使用Python的`requests`库
      • 2. 使用JavaScript的`fetch` API
      • 3. 使用Curl命令行工具
      • 4. 使用浏览器自动化工具
    • 9、访问url的“实际需求”
      • 信息检索
      • 交互操作
      • 功能测试
      • 网络爬虫
      • 安全检查
      • 网络监控
      • 个人使用
    • 10、按需定制“请求头”
      • 1. 用户代理(User-Agent)
      • 2. 接受类型(Accept)
      • 3. 接受语言(Accept-Language)
      • 4. 接受编码(Accept-Encoding)
      • 5. 内容类型(Content-Type)
      • 6. 认证信息(Authorization)
      • 7. 引用(Referer)
      • 8. Cookie
      • 模拟浏览器访问网页
      • 发送JSON数据到API
      • 发送表单数据
    • 2、算法解析


◆ 简析“请求头”



  请求头(HTTP Request Headers)HTTP 请求中的一个重要部分,它们提供了关于请求、响应以及客户端和服务器之间的通信方式的额外信息。


1、请求头的作用


  • 以下是请求头的一些主要作用
  1. 身份验证:如 Authorization 头可以用于提供认证信息。
  2. 内容类型Content-Type 头告诉服务器请求正文的 MIME 类型。
  3. 编码Accept-Encoding 头用于指定客户端可以处理的编码类型。
  4. 语言Accept-Language 头用于指定客户端接受的语言。
  5. 缓存控制Cache-Control 头用于指定响应的缓存策略。
  6. 用户代理User-Agent 头包含了发出请求的用户代理软件信息,通常用于浏览器识别。
  7. 引用Referer 头包含了当前请求的原始地址,即从哪个页面发出的请求。



回页目录


2、获取请求头的方法


  在 Python 中,可以使用 urllib 模块来获取请求头。


以下是获取请求头的一个示例

import urllib.request
# 发送请求
response = urllib.request.urlopen('http://www.example.com')
# 获取响应头
headers = response.getheaders()
# 打印所有响应头
for header in headers:print(header)



回页目录


3、 自定义请求头


  在发送请求时,有时需要自定义请求头,比如模拟浏览器行为或传递特定的信息。


以下是如何在 Python 中使用 urllib 自定义请求头

import urllib.request
# 要发送请求的 URL
url = 'http://www.example.com'
# 自定义请求头
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Language': 'en-us,en;q=0.5',# 可以添加更多的自定义头部
}
# 创建一个请求对象,并设置自定义头部
req = urllib.request.Request(url, headers=headers)
# 发送请求
response = urllib.request.urlopen(req)
# 读取响应内容
html = response.read().decode('utf-8')


  在这个例子中,我们创建了一个 Request 对象,并将自定义的头部字典传递给它。urllib 将使用这些头部信息发送请求。
需要注意的是,某些网站可能会对请求头进行校验,以确保请求来自合法的客户端。如果请求头信息不正确,服务器可能会拒绝请求或返回错误信息。因此,在自定义请求头时,应确保遵守目标网站的要求和规定。



回页目录


4、urllib基本用法


  urllib 是 Python 标准库中的一个模块,它用于读取来自 Web 的数据。


1. 网络请求

使用 urllib.request 可以发送网络请求。

import urllib.request
# 发送请求并读取响应
response = urllib.request.urlopen('http://www.example.com')
html = response.read()
# 打印内容
print(html)

2. 解码响应内容

响应内容通常是以字节形式返回的,可以使用 decode() 方法将其解码为字符串。

html = response.read().decode('utf-8')

3. 请求头

可以通过添加请求头来模拟浏览器行为。

url = 'http://www.example.com'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
}
req = urllib.request.Request(url, headers=headers)
response = urllib.request.urlopen(req)

4. 错误处理

使用 try-except 语句可以捕获请求过程中可能出现的异常。

from urllib.error import URLError, HTTPError
try:response = urllib.request.urlopen('http://www.example.com')
except HTTPError as e:print('HTTPError:', e.code)
except URLError as e:print('URLError:', e.reason)
else:print('请求成功')

5. URL 编码和解码

使用 urllib.parse 可以对 URL 进行编码和解码。

from urllib.parse import urlencode, urlparse, parse_qs
# 编码查询参数
params = {'key1': 'value1', 'key2': 'value2'}
encoded_params = urlencode(params)
print(encoded_params)  # 输出: key1=value1&key2=value2
# 解析 URL
parsed_url = urlparse('http://www.example.com/index.html;user?id=5#comment')
print(parsed_url.scheme)    # 输出: http
print(parsed_url.netloc)    # 输出: www.example.com
print(parsed_url.path)      # 输出: /index.html
print(parsed_url.query)     # 输出: user?id=5
print(parsed_url.fragment)  # 输出: comment
# 解析查询字符串
query = 'user?id=5&name=John'
parsed_query = parse_qs(query)
print(parsed_query)  # 输出: {'user': [''], 'id': ['5'], 'name': ['John']}


  以上是 urllib 的基本用法。在实际使用中,请根据具体需求选择合适的方法。



回页目录


5、URL解码


  在Python中,你可以使用urllib.parse模块来对URL进行解码。


以下是一个如何对提供的URL进行解码的例子

from urllib.parse import unquote
url = 'https://blog.csdn.net/2202_76097976/article/details/140308602?app_version=6.4.0&code=app_1562916241&csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22140308602%22%2C%22source%22%3A%22m0_57158496%22%7D&uLinkId=usr1mkqgl919blen&utm_source=app'
decoded_url = unquote(url)
print(decoded_url)

  这段代码将输出解码后的URL,其中URL中的百分号编码(例如%7B)会被替换成对应的字符(例如{)。

  unquote函数会将URL字符串中的百分号编码的数据解码成原字符。如果你遇到 U R L URL URL中包含中文或其他非ASCII字符被编码的情况,这个函数也会将这些字符正确解码。如果URL中使用了+来表示空格(这在URL编码中是允许的),并且你希望将+解码成空格,你可以使用unquote_plus函数代替unquote



回页目录


6、页面解析


  urllib 本身并不提供页面解析的功能,但通常与 Python 的其他模块如 re(正则表达式模块)或第三方库如 BeautifulSoup 配合使用来解析读取的页面数据。


以下是几种使用 urllib 读取页面数据并进行解析的方法


1. 使用正则表达式(re 模块)

import urllib.request
import re
# 发送请求并读取页面数据
response = urllib.request.urlopen('http://www.example.com')
html = response.read().decode('utf-8')
# 使用正则表达式查找数据
pattern = re.compile(r'<title>(.*?)</title>')
title = pattern.search(html)
if title:print('Page title:', title.group(1))

  这段代码将获取页面标题title,如果re到文本数据,则打印输出到python终端控制台;否则不输出。

  (这段代码,是不科学的。诚然,一般都是可以从url读取到title的,但也不排除title为空的情况。最好,加入一个if分支else: print("页面标题获取失败。"),以保证title为空时有消息字符串提示。)


2. 使用 BeautifulSoup

  BeautifulSoup 是一个第三方库,它提供了一个非常友好的 API 来解析 HTML 和 XML 文档。首先需要安装 BeautifulSoup 和 解析器(通常是 lxmlhtml.parser)。

import urllib.request
from bs4 import BeautifulSoup
# 发送请求并读取页面数据
response = urllib.request.urlopen('http://www.example.com')
html = response.read().decode('utf-8')
# 使用 BeautifulSoup 解析 HTML
soup = BeautifulSoup(html, 'html.parser')
# 获取页面标题
title = soup.title.string
print('Page title:', title)
# 获取所有链接
for link in soup.find_all('a'):print(link.get('href'))

3. 使用 XML 解析器

  如果页面数据是 XML 格式,可以使用 xml.etree.ElementTree 模块进行解析。

import urllib.request
import xml.etree.ElementTree as ET
# 发送请求并读取页面数据
response = urllib.request.urlopen('http://www.example.com/some.xml')
xml_data = response.read().decode('utf-8')
# 使用 ElementTree 解析 XML
root = ET.fromstring(xml_data)
# 遍历 XML 文档
for child in root:print(child.tag, child.attrib)

4. 使用 JSON 解析器

  如果页面数据是 JSON 格式,可以使用 json 模块进行解析。

import urllib.request
import json
# 发送请求并读取页面数据
response = urllib.request.urlopen('http://www.example.com/some.json')
json_data = response.read().decode('utf-8')
# 使用 json 模块解析 JSON
data = json.loads(json_data)
# 打印 JSON 数据
print(data)


  根据您需要解析的页面数据类型,您可以选择上述方法中的一种。正则表达式适用于简单、有规律的文本匹配,而 BeautifulSoup 则提供了更加强大和灵活的解析能力,适用于复杂的 H T M L HTML HTML 结构。对于 XMLJSON 数据,使用专门的解析器可以更加高效和方便。



回页目录


7、“请求头”的“部件”


  在HTTP请求中,“请求头”(HTTP headers)包含了关于请求、响应或者其他的发送信息。并不是所有的字段都需要在每次请求中出现,但有一些基本的字段通常会被包括在内。


  • 以下是一些常见的HTTP请求头字段
  1. Host: 指定请求的服务器的域名和端口号。
  2. User-Agent: 包含了发出请求的用户代理软件信息。
  3. Accept: 指定客户端能够接收的内容类型。
  4. Accept-Language: 指定客户端接受的语言。
  5. Accept-Encoding: 指定客户端能够解码的内容编码。
  6. Connection: 控制不同请求之间的网络连接的选项。
  7. Cookie: 发送服务器之前存储在客户端的cookie。

  • 以下是一些不一定需要在每次请求中都出现的请求头字段
    • Content-Length: 请求体的长度,仅在发送请求体时需要。
    • Content-Type: 请求体的类型,仅在发送请求体时需要。
    • Authorization: 认证信息,仅在访问受保护的资源时需要。
    • Referer: 当前请求页面的来源页面的地址,不是所有请求都需要。


  根据请求的具体内容和目的,某些请求头字段可能是可选的或者根本不需要。例如,一个简单的GET请求可能不需要Content-LengthContent-Type头,因为没有请求体。而对于需要身份验证的请求,则必须包含Authorization头。


  总的来说,是否包含全部字段信息取决于具体请求的需求。开发者应该根据实际情况和HTTP规范来决定哪些请求头字段是必要的。



回页目录


8、模拟浏览器访问url


  模拟浏览器访问URL通常涉及到使用HTTP客户端来发送请求,并设置相应的请求头来模仿真实浏览器的行为。


以下是一些常见的方法来模拟浏览器访问


1. 使用Python的requests

  你可以使用Python的requests库来模拟浏览器访问,通过设置User-Agent等请求头。

import requests
# 设置请求头,模拟Chrome浏览器的User-Agent
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
# 发送GET请求
response = requests.get('http://example.com', headers=headers)
# 打印响应内容
print(response.text)

2. 使用JavaScript的fetch API

在JavaScript中,你可以使用fetch API来模拟浏览器请求。

// 模拟Chrome浏览器的User-Agent
const headers = new Headers({'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
});
// 发送GET请求
fetch('http://example.com', { headers: headers }).then(response => response.text()).then(data => console.log(data)).catch(error => console.error('Error:', error));

3. 使用Curl命令行工具

在命令行中,你可以使用curl来模拟浏览器请求。

curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" \http://example.com

这里-A参数用于设置User-Agent请求头。


4. 使用浏览器自动化工具

如果你需要更复杂的模拟,比如处理JavaScript渲染的页面,你可以使用浏览器自动化工具,如Selenium。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 设置Chrome选项以模拟浏览器
options = Options()
options.add_argument("--headless")  # 无头模式
options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3')
# 创建WebDriver实例
driver = webdriver.Chrome(options=options)
# 访问网页
driver.get('http://example.com')
# 获取页面源代码
page_source = driver.page_source
print(page_source)
# 关闭浏览器
driver.quit()

请确保在运行Selenium代码之前已经安装了相应的WebDriver。


  以上方法都可以模拟浏览器访问URL,但是如果你需要处理JavaScript渲染的页面或者与页面进行交互,那么使用Selenium等自动化工具会更加合适。



回页目录


9、访问url的“实际需求”


  访问URL的实际需求可以根据不同的场景和目的而有所不同。


以下是一些可能的需求


信息检索

  1. 内容获取:用户或程序需要访问网页以获取信息,如阅读新闻、查询天气、搜索学术资料等。
  2. 数据抓取:开发者可能需要从网页上抓取数据用于数据分析、机器学习或其他处理。

交互操作

  1. 用户交互:用户可能需要登录网站、填写表单、参与论坛讨论等。
  2. API调用:程序可能需要访问API端点以获取数据或触发某些操作,例如在社交媒体上发布消息。

功能测试

  1. 功能验证:开发者可能需要测试网站的功能是否正常,例如支付流程、用户注册等。
  2. 性能测试:需要检查网站或服务的响应时间、负载能力等性能指标。

网络爬虫

  1. 搜索引擎索引:搜索引擎的爬虫需要访问网页以建立索引,便于用户搜索。
  2. 价格监控:电商监控工具可能定期访问商品页面以监控价格变动。

安全检查

  1. 漏洞扫描:安全专家可能需要访问网站以检测潜在的安全漏洞。
  2. 合规性检查:企业可能需要检查网站内容是否符合法律法规的要求。

网络监控

  1. 网站可用性监控:监控服务需要定期访问网站以确保网站在线并且可以访问。
  2. 内容监控:可能需要监控特定网页内容的变化,例如新闻更新或政策变动。

个人使用

  1. 娱乐:用户访问视频、音乐、游戏网站进行娱乐活动。
  2. 学习:用户访问在线课程、教育资料进行自我提升。


  在访问URL时,根据实际需求,可能需要考虑以下因素

  • 用户代理:模拟不同的浏览器或设备。
  • 身份验证:登录或使用API密钥进行访问。
  • 数据格式:请求特定格式的数据,如JSON、XML等。
  • 频率:确定访问频率,避免对服务器造成过大压力。
  • 遵守规则:遵循网站的服务条款和robots.txt文件规定。
  • 网络环境:考虑网络延迟、代理、VPN等因素。


  根据不同的需求,访问URL的方法和使用的工具也会有所不同。例如,简单的数据抓取可能只需要使用requests库,而复杂的交互可能需要使用Selenium或其他自动化工具。



回页目录


10、按需定制“请求头”


  根据不同的需求配置请求头,通常需要考虑以下几个方面


1. 用户代理(User-Agent)

  • 模拟浏览器访问:设置与目标浏览器一致的User-Agent字符串。
  • 避免被屏蔽:某些服务器可能会屏蔽爬虫或非主流浏览器的请求,因此可能需要伪装成主流浏览器的用户代理。
  • API访问:对于API调用,可能需要提供API指定的用户代理字符串。

2. 接受类型(Accept)

  • 获取网页内容:通常设置为text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  • API调用:可能需要设置为application/json或其他数据格式。

3. 接受语言(Accept-Language)

  • 本地化内容:根据需求设置特定的语言,如en-USzh-CN等。

4. 接受编码(Accept-Encoding)

  • 压缩内容:通常设置为gzip, deflate以接受压缩内容,减少数据传输量。

5. 内容类型(Content-Type)

  • 发送数据:在发送POST或PUT请求时,需要根据发送的数据类型设置,如application/jsonapplication/x-www-form-urlencoded等。

6. 认证信息(Authorization)

  • 需要认证的请求:设置正确的认证信息,如Bearer Token或Basic认证。

7. 引用(Referer)

  • 防止盗链:某些服务器会检查请求的来源,因此需要设置正确的Referer字段。

8. Cookie

  • 维持会话状态:在需要维持登录状态或会话信息时,需要携带正确的Cookie。

以下是根据不同需求配置请求头的示例


模拟浏览器访问网页

import requests
# 模拟Chrome浏览器
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Language': 'en-US,en;q=0.5','Accept-Encoding': 'gzip, deflate'
}
response = requests.get('http://example.com', headers=headers)

发送JSON数据到API

import requests
# 发送JSON数据
headers = {'Content-Type': 'application/json','Authorization': 'Bearer your_token_here'
}
data = {'key': 'value'}
response = requests.post('http://api.example.com/data', headers=headers, json=data)

发送表单数据

import requests
# 发送表单数据
headers = {'Content-Type': 'application/x-www-form-urlencoded'
}
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('http://example.com/form', headers=headers, data=data)

  在配置请求头时,应当根据具体需求以及目标服务器的预期来设置。同时,要确保遵守目标网站的使用条款和隐私政策,不要进行任何违法或侵犯他人权益的行为。



回页目录


2、算法解析



回页首


上一篇:  编程学单词:delta(希腊字母Δ/δ)(希腊字母表的第四个字母,大写为Δ,小写为δ)
下一篇: 



我的HOT博:

  本次共计收集 311 篇博文笔记信息,总阅读量43.82w。数据于2024年03月22日 00:50:22完成采集,用时6分2.71秒。阅读量不小于6.00k的有 7 7 7篇。

  • 001
    标题:让QQ群昵称色变的神奇代码
    (浏览阅读 5.9w )
    地址:https://blog.csdn.net/m0_57158496/article/details/122566500
    点赞:25 收藏:86 评论:17
    摘要:让QQ昵称色变的神奇代码。
    首发:2022-01-18 19:15:08
    最后编辑:2022-01-20 07:56:47

  • 002
    标题:Python列表(list)反序(降序)的7种实现方式
    (浏览阅读 1.1w )
    地址:https://blog.csdn.net/m0_57158496/article/details/128271700
    点赞:8 收藏:35 评论:8
    摘要:Python列表(list)反序(降序)的实现方式:原址反序,list.reverse()、list.sort();遍历,全数组遍历、1/2数组遍历;新生成列表,resersed()、sorted()、负步长切片[::-1]。
    首发:2022-12-11 23:54:15
    最后编辑:2023-03-20 18:13:55

  • 003
    标题:pandas 数据类型之 DataFrame
    (浏览阅读 9.7k )
    地址:https://blog.csdn.net/m0_57158496/article/details/124525814
    点赞:7 收藏:36 
    摘要:pandas 数据类型之 DataFrame_panda dataframe。
    首发:2022-05-01 13:20:17
    最后编辑:2022-05-08 08:46:13

  • 004
    标题:个人信息提取(字符串)
    (浏览阅读 8.2k )
    地址:https://blog.csdn.net/m0_57158496/article/details/124244618
    点赞:2 收藏:15 
    摘要:个人信息提取(字符串)_个人信息提取python。
    首发:2022-04-18 11:07:12
    最后编辑:2022-04-20 13:17:54

  • 005
    标题:Python字符串居中显示
    (浏览阅读 7.6k )
    地址:https://blog.csdn.net/m0_57158496/article/details/122163023
    评论:1

  • 006
    标题:罗马数字转换器|罗马数字生成器
    (浏览阅读 7.5k )
    地址:https://blog.csdn.net/m0_57158496/article/details/122592047
    摘要:罗马数字转换器|生成器。
    首发:2022-01-19 23:26:42
    最后编辑:2022-01-21 18:37:46

  • 007
    标题:回车符、换行符和回车换行符
    (浏览阅读 6.0k )
    地址:https://blog.csdn.net/m0_57158496/article/details/123109488
    点赞:2 收藏:3 
    摘要:回车符、换行符和回车换行符_命令行回车符。
    首发:2022-02-24 13:10:02
    最后编辑:2022-02-25 20:07:40


推荐条件 阅读量突破6.00k
(更多热博,请点击蓝色文字跳转翻阅)

  • 截屏图片
    在这里插入图片描述
      (此文涉及ChatPT,曾被csdn多次下架,前几日又因新发笔记被误杀而落马。躺“未过审”还不如回收站,回收站还不如永久不见。😪值此年底清扫,果断移除。留此截图,以识“曾经”。2023-12-31)



回页首


老齐漫画头像

精品文章:

  • 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
  • OPP三大特性:封装中的property
  • 通过内置对象理解python'
  • 正则表达式
  • python中“*”的作用
  • Python 完全自学手册
  • 海象运算符
  • Python中的 `!=`与`is not`不同
  • 学习编程的正确方法

来源:老齐教室


◆ Python 入门指南【Python 3.6.3】


好文力荐:

  • 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
  • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
  • 靠谱程序员的好习惯
  • 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归

CSDN实用技巧博文:

  • 8个好用到爆的Python实用技巧
  • python忽略警告
  • Python代码编写规范
  • Python的docstring规范(说明文档的规范写法)

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

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

相关文章

RSA算法(C++)

RSA加解密过程 RSA为非对称加密算法&#xff0c;由一对公钥和一对私钥构成&#xff0c;私钥加密公钥解密&#xff0c;公钥加密私钥解密 如下图,D为私密的&#xff0c;假设传输英文字母&#xff0c;我们给英文字母编号A1,B2,C3… RSA加解密过程 两对密钥产生方法如下 C Op…

【RHCE】基于密钥的身份验证(Win-Linux)

目的&#xff1a;要提⾼系统安全性&#xff0c;通过在 OpenSSH 服务器上禁⽤密码⾝份验证来强制进⾏基于密钥的⾝份验证。 1、一台虚拟机无需密码连接另一台虚拟机 .ssh目录 > 保存了ssh相关的key和一些记录文件 &#xff08;1&#xff09;生成密钥对 使⽤这个流程在本地…

U盘打不开的终极解决方案:原因剖析、恢复策略与预防之道

U盘困境&#xff1a;打不开的焦虑与应对 在数字化时代&#xff0c;U盘作为数据交换与存储的重要工具&#xff0c;几乎成为了每个人工作、学习和生活中的必需品。然而&#xff0c;当您满怀期待地将U盘插入电脑&#xff0c;却遭遇“无法识别”、“无法访问”等提示&#xff0c;U…

【人工智能】Transformers之Pipeline(一):音频分类(audio-classification)

​​​​​​​ 目录 一、引言 二、音频分类&#xff08;audio-classification&#xff09; 2.1 概述 2.2 技术原理 2.2.1 Wav2vec 2.0模型 2.2.1 HuBERT模型 2.3 pipeline参数 2.3.1 pipeline对象实例化参数 2.3.2 pipeline对象使用参数 2.4 pipeline实战 2.4.1 …

【Qt 基础】Qt Creator 的初步使用、创建项目的过程

文章目录 1. Qt SDK 中工具程序的介绍2. 创建第一个 Qt 项目的前置步骤 1. Qt SDK 中工具程序的介绍 下载之后会出现下面几个程序&#xff1a; Assistant 表示 Qt 自带的离线官方文档&#xff1b; Designer &#xff1a;Qt设计师&#xff0c;图形化的设计界面的工具&#xf…

C++程序进阶学习

目录 引言 C内存分区 一、内存分区模型 二、 程序运行前 三、程序执行后 C引用 引用的语法 作用 本质 优点 C封装 C对象特性 C对象模型和this指针 C友元 C运算符重载 C继承 C多态 C文件 引言 看过我博客的朋友可能都了解这篇文章内容了&#xff0c;这篇博…

超声波清洗机哪家好?家用超声波眼镜清洗机推荐

超声波清洗机现在已经成为了很多家庭的新宠&#xff0c;它能够帮助我们轻松解决日常生活中的清扫烦恼。但是&#xff0c;面对市面上品种繁多的清洗机产品&#xff0c;我们该如何选择一款适合自己的呢?毕竟不同的品牌和型号&#xff0c;在清洗效果、噪音水平、除菌能力等方面都…

RHCE-autofs自动挂载

要求 一、在主机上提供web&#xff0c;dns服务 服务端 IP&#xff1a;172.25.250.131/24 dns&#xff1a;172.25.250.131 [rootlocalhost ~]# cd /etc/httpd/conf.d[rootlocalhost conf.d]# vim vhost.conf [rootlocalhost conf.d]# mkdir /nfs/rhce -p[rootlocalhost conf…

雪深监测站的工作原理

TH-TS200雪深监测站是一种用于测量和记录雪层深度的设备&#xff0c;它在气象观测、交通管理、防灾减灾、水源管理等多个领域发挥着重要作用。雪深监测用来监测雪深的设备。它通过各种传感器和测量设备&#xff0c;如超声波测距仪、激光测距仪、压力传感器等&#xff0c;获取雪…

若依安装和初始化教程(傻瓜教程 一步一步走)

1、若依的安装&#xff1a; 1、找到若依官方网站并选择若依的前后端分离版本 2、点击克隆 然后选择http进行复制 3、打开idea 如果有打开的项目就先关闭项目&#xff0c;然后就会自动弹出下面第二张图片&#xff0c;接着按照流程走就可以 到此若依的下载就成功了 2、若依项目…

如何判断代码是否是在UPDATE TASK的Session中执行?

1. 背景 有时我们想控制ABAP代码在UPDATE TASK中的逻辑&#xff0c;例如某些逻辑执行&#xff0c;某些逻辑不执行。 那么&#xff0c;我们应该如何判断当前代码运行的环境呢&#xff1f;也即&#xff0c;怎么知道一段运行时代码是运行在当前的ABAP session中&#xff0c;还是…

IDEA设置代码提示忽略大小写

一、设置代码提示为忽略大小写 IDEA代码提示默认是区分大小写的&#xff0c;设置为提示忽略大小写&#xff1a; Setting——Editor——Code Completion 如图

智慧金融-数据可视化

智慧金融-数据可视化 导入所需的库 import numpy as np import numpy_financial as npf import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams[font.sans-serif][FangSong] mpl.rcParams[axes.unicode_minus]False单图曲线图 r 0.05 # 贷款的年利率 n 30…

字符串哈希详解,单hash,双hash,滚动哈希

一、字符串哈希 1.1 基本概念 字符串哈希 将不同的字符串映射成不同的整数。 思想&#xff1a;将字符串映射成一个 p进制数字。 我们定义如下哈希函数&#xff1a; h a s h ( s ) ∑ i 1 n s [ i ] p n − i ( m o d M ) 其中 s 为长度为 n 的字符串&#xff0c;下标从…

【考研408操作系统】最容易理解的知识体系-文件管理-面向人类管理

苏泽 “弃工从研”的路上很孤独&#xff0c;于是我记下了些许笔记相伴&#xff0c;希望能够帮助到大家 我将以全新的视角用两篇文章梳理完考研计算机当中关于“文件管理”这个部分的考点的所有内容 以下是我整理的知识点思维导图 目录 我将以全新的视角用两篇文章梳理完考研…

代码随想录算法训练营第三十天

56. 合并区间 这道题跟452. 用最少数量的箭引爆气球 (opens new window)和 435. 无重叠区间 (opens new window)都是一个套路。 回了上面两个这道题并不难 这题主要就是发现重叠后更新一下当前元素的起始范围 if (intervals[i][0] < intervals[i-1][1]) {intervals[i][0…

和鲸101计划夏令营火热进行中!北中医助阵医学数据探索

上周&#xff0c;和鲸社区 2024 夏令营已经正式开营&#xff01; 从 2021 年开始&#xff0c;和鲸社区在每年暑假期间都会为大家提供集中化、系统化的数据科学相关的技能实践和培训&#xff0c;每年都有几千名同学借此机会积累宝贵的实战经验&#xff0c;丰富个人简历作品&…

DR模式介绍

DR模式 lvs的三种模式 nat&#xff1a;地址转换 DR模式&#xff1a;直接路由模式 tun&#xff1a;隧道模式 DR模式的特点 调度器在整个lvs集群当中是最重要的&#xff0c;在nat模式下&#xff0c;即负责接受请求&#xff0c;同时根据负载均衡的算法转发流量&#xff0c;响…

2025 百度提前批校招内推

百度2025校园招聘内推开始啦&#xff0c;被推荐人可以免笔试直接面试&#xff0c;提前批结果不影响校招&#xff0c;机会1&#xff0c;还可直推心仪部门&#xff0c;可扫描下面二维码或点击链接进行投递&#xff0c;快来投递你心仪的职位吧&#xff08; 网申链接地址 &#xff…

Linux 04:进程概念

1. 操作系统(Operator System) 概念 任何计算机系统都包含一个基本的程序集合&#xff0c;称为操作系统(OS)。笼统的理解&#xff0c;操作系统包括&#xff1a; 内核&#xff08;进程管理&#xff0c;内存管理&#xff0c;文件管理&#xff0c;驱动管理&#xff09;。其他程序…