html基础标签+Http请求

文章目录

  • 目录

    文章目录

    前言

    一.网址组成

    二.HTTP协议解析

    Http 请求报文

     报文请求方法

     报文头

    Cache-Control 常见缓存控制行为

     cookie 解析

    Http 响应报文

     常见状态码

     三.域名解析(DNS)

    DNS域名服务器分类

    递归查询

    迭代查询

    四.端口号

    五.路径信息

    六.Https协议

    ​对称加密算法

    非对称加密算法

    总结


前言

        我们想象一个场景,当我们在浏览器中输入网址后,网页会自动生成对应网页且打开曾经登录过的网站,发现无需重新登录直接进入首页,这是如何做到的呢?

        其实,当们在浏览器输入网址后浏览器会通过网址中域名解析出的IP地址访问该网址对应的服务器;服务器收到浏览器发出的请求后,根据网址中包含的执行方法,路径信息等信息返回相应的文本信息,最终浏览器解析服务器返回的信息从而生成对应的网页!!!


一.网址组成

一个完整的网址(URL)通常包含以下部分:

  1. 协议(Protocol):表示访问网页时使用的通信协议,常见的有HTTP、HTTPS、FTP等。HTTP(超文本传输协议)是一种用于传输超文本的协议,是互联网上应用最为广泛的协议之一。HTTPS(安全超文本传输协议)是一种加密的HTTP协议,可以保证数据传输的安全性。FTP(文件传输协议)则是一种用于文件传输的协议。
  2. 域名(Domain Name):表示网站的名称,是网站在互联网上的唯一标识。域名由多个部分组成,包括主域名和子域名。例如,在www.example.com中,“www”是子域名,“example”是主域名,“.com”是顶级域名。域名也可以被视为一个IP地址的代称,目的是为了便于记忆。
  3. 端口号(Port):表示用于访问网站的端口号,默认为80。端口号的范围是0~65535。
  4. 路径(Path):表示网站上具体的文件或目录路径。路径通常由多个目录和文件名组成,用斜杠(/)分隔。例如,在www.baidu.com/news/index.html中,“news/index.html”就是路径。
  5. 此外,一个完整的网址还可能包含查询参数锚点。查询参数用于向服务器发送额外的数据,通常以“?”开头,后跟参数名和参数值。锚点则用于指定网页内部的定位点,以“#”开头,用于跳转到网页的特定位置。

二.HTTP协议解析

http协议详解

      HTTP协议(超文本传输协议)是用于从万维网(WWW)服务器传输超文本到本地浏览器的传输协议。它是互联网上应用最为广泛的一种网络协议。

  •   工作原理:HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端(即WEB服务器)发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
  •  特点:HTTP协议具有简单、灵活的特点。它基于TCP/IP协议,是一种无连接、无状态的协议,每个请求都是独立的,不依赖于之前的请求或响应。这意味着服务器不会跟踪客户端的状态,每个请求都需要包含足够的信息以供服务器处理。此外,HTTP协议还允许传输任意类型的数据对象,具有很好的扩展性。

点击此处了解TCP协议

Http 请求报文

 一个完成的Http请求报文包含以下三个部分:请求行+请求头+请求体

 报文请求方法
GET : 请求指定的页面信息,并返回实体主体。
HEAD : 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
POST : 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
PUT : 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE : 请求服务器删除指定的页面。
CONNECT : HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS : 允许客户端查看服务器的性能。
TRACE : 回显服务器收到的请求,主要用于测试或诊断。
PATCH : 是对 PUT 方法的补充,用来对已知资源进行局部更新 。
 报文头

以下是对HTTP请求报文头的一些常见字段的解析:

  1. Host:指定了请求的目标服务器的域名和端口号。这是HTTP/1.1规范中必须包含的字段,用于告诉服务器请求的目标地址。

  2. User-Agent:表示发出请求的客户端类型,通常包括浏览器类型、版本、操作系统等信息。服务器可以根据User-Agent来定制响应内容,以适配不同的客户端设备。

  3. Accept:告诉服务器客户端能够处理的媒体类型。这个字段可以包含多种媒体类型,并且可以通过质量因子(q-factor)来指定每种类型的优先级。

  4. Accept-Language:表示客户端偏好的自然语言。这可以帮助服务器返回针对特定语言环境的本地化内容。

  5. Accept-Encoding:客户端告诉服务器它支持的内容编码方式,如gzip、deflate等。服务器可以根据这个字段来决定是否对响应内容进行压缩。

  6. Accept-Charset:表示客户端支持的字符集,如UTF-8、GBK等。这有助于服务器正确编码响应内容。

  7. Connection:用于控制网络连接的行为。常见的值有"close"(表示请求完成后关闭连接)和"keep-alive"(表示保持连接以便复用)。

  8. Cache-Control:用于控制缓存行为。客户端可以通过这个字段来指定是否缓存请求的响应,以及缓存的有效期等。

  9. Authorization:当需要进行身份验证时,客户端会在这个字段中包含认证信息,如用户名和密码。

  10. Referer:表示发出请求的页面的URL。这个字段通常用于跟踪用户访问来源,也可以帮助服务器生成重定向或重写的规则。

  11. Content-Type:在POST或PUT请求中,用于指定请求体的媒体类型。例如,在发送表单数据时,可能会使用application/x-www-form-urlencodedmultipart/form-data

  12. Content-Length:表示请求体的长度(以字节为单位)。这个字段对于服务器来说很重要,因为它知道需要读取多少数据。

  13. Cookie:用于在客户端和服务器之间传递会话信息。浏览器会在每个请求中自动包含之前收到的所有Cookie。

Cache-Control 常见缓存控制行为
Public 指示响应可被任何缓存区缓存;
Private 指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效;
no-cache 指示请求或响应消息不能缓存;
no-store 用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存;
max-age 指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应;
min-fresh 指示客户机可以接收响应时间小于当前时间加上指定时间的响应;
max-stale 指示客户机可以接收超出超时期间的响应消息。如果指定 max-stale 消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。
 cookie 解析

        Cookie是HTTP协议的一种规范,它是服务器发送到用户浏览器并保存在本地的一小段数据。每当客户端(通常是浏览器)请求同一个网站时,它会发送之前接收并保存的Cookie信息到服务器。这些信息可以被服务器用来识别用户身份、跟踪会话状态等。

Cookie中主要包含以下内容:

  1. 名称(Name):Cookie的唯一标识符,用于标识和区分不同的Cookie。

  2. 值(Value):Cookie的具体数据,服务器发送到客户端的实际数据,可以是任何类型的数据,通常以字符串形式存储。

  3. 域名(Domain):指定哪些域名可以访问该Cookie。通常,Cookie只能由创建它的域名下的网页访问。

  4. 路径(Path):指定哪些路径或页面可以访问该Cookie。只有路径或子路径下的页面才能访问该Cookie。

  5. 有效期/过期时间(Expires/Max-Age):指定Cookie何时过期。如果设置了过期时间,浏览器会将Cookie保存到硬盘上,并在过期时间之前发送该Cookie给服务器。否则,Cookie只在浏览器会话期间有效,关闭浏览器后会被删除。

  6. 安全标志(Secure):如果设置了Secure属性,那么Cookie只能通过HTTPS协议发送,不能通过HTTP协议发送,这有助于保护Cookie的安全。

  7. HttpOnly标志:如果设置了HttpOnly属性,那么Cookie将无法通过客户端脚本(如JavaScript)访问,这有助于防止跨站脚本攻击(XSS)。

Http 响应报文

一个完成的Http响应头包含以下信息:响应行+响应头+响应体

 常见状态码
1xx : 信息响应类,表示接收到请求并且继续处理
2xx : 处理成功响应类,表示动作被成功接收、理解和接受
3xx : 重定向响应类,为了完成指定的动作,必须接受进一步处理
4xx : 客户端错误,客户请求包含语法错误或者是不能正确执行
5xx : 服务端错误,服务器不能正确执行一个正确的请求
100(继续):请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101(切换协议):请求者已要求服务器切换协议,服务器已确认并准备切换。200(成功):服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。
201(已创建):请求成功并且服务器创建了新的资源。
204(无内容):服务器成功处理了请求,但在返回的响应报文中不含实体的主体部分(没有资源可以返回)。
206(部分内容):服务器成功处理了部分GET请求。301(永久移动):被请求的资源已永久移动到新位置。
302(临时移动):请求的资源临时从不同的URI响应请求,但请求者应继续使用原有位置来进行以后的请求。
304(未修改):自从上次请求后,请求的网页未修改过。400(错误请求):请求有语法错误或无法理解。
401(未授权):请求要求身份验证。
403(禁止):服务器已经理解请求,但是拒绝执行它。
404(未找到):服务器无法找到被请求的页面。500(内部服务器错误):服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。
503(服务不可用):服务器暂时处于超负载或正在进行停机维护,无法处理请求。

 三.域名解析(DNS)

DNS 域名解析是将域名(如www.example.com)转换为对应的IP地址(如192.0.2.1)的过程。在这个过程中,涉及到两种主要的查询方式:递归查询和迭代查询。

DNS域名服务器分类

  • 根域名服务器: 主要负责解析互联网最顶级的域名,如.com、.org、.net等。当用户输入一个网址时,当本地域名服务器向根域名服务器发出查询请求时,路由器就把查询请求报文转发到离这个DNS客户最近的一个根域名服务器,以获取目标域名对应的IP地址。根域名服务器全球共13台。
  • 顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名。例如,.com域名的顶级域名服务器负责管理所有以.com结尾的域名。也被称为权威域名服务器
  • 权限域名服务器:这些域名服务器负责管理某个区的域名。每一个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与IP地址的映射关系。另外,权限域名服务器还知道其下级域名服务器的地址。
  • 本地域名服务器:。这些服务器主要服务于其所在区域内的用户,提供快速的域名解析服务。当用户在浏览器中输入一个域名时,本地域名服务器会迅速将该域名解析为相应的IP地址,从而快速地完成网页的加载。

递归查询

递归查询是客户端向DNS服务器发送一个查询请求,然后等待DNS服务器返回查询结果。如果DNS服务器本地缓存中有对应的结果,则直接返回;如果没有,它会向其他DNS服务器(如根服务器)发送查询请求,并等待这些服务器返回结果。一旦获取到结果,它会将这个结果返回给客户端,并且可能会将结果缓存起来,以便未来对同样的查询请求能够更快地响应。

迭代查询

迭代查询是客户端向DNS服务器发送一个查询请求,然后等待DNS服务器返回一个或多个可能包含答案的DNS服务器的地址。客户端接着向这些服务器发送查询请求,重复这个过程,直到找到答案或确定答案不存在。

 总结:递归查询由本地域名服务器返回给主机域名对应的IP地址;迭代查询由本地服务器返回给主机一个其它可能查询到该域名的DNS服务器地址并由主机根据返回的地址自主访问。

通常采用模式:从请求主机到本地域名服务器的查询是递归查询,而其余的查询是迭代查询。

四.端口号

当一个计算机上的应用程序或服务需要与其他计算机进行通信时,它会使用一个特定的端口号作为目标端口。接收方的计算机会根据目标端口号来确定将数据包传送给哪个应用程序或服务。

五.路径信息

URL中的路径信息是指在主机名后面的部分,通常用来指定访问服务器上特定资源的路径。路径信息的作用如下:

  1. 标识资源位置:路径信息可以告诉服务器需要访问的资源所在的具体路径,服务器可以根据路径信息来定位资源的存储位置。

  2. 指定资源类型:路径信息的扩展名可以指定要访问的资源的类型,例如.html表示访问HTML文件,.jpg表示访问图片文件等。

  3. 支持页面跳转:路径信息可以用来实现页面之间的跳转,通过在URL中指定不同的路径信息,可以直接访问不同的页面或资源。

  4. 支持动态生成内容:路径信息可以用来传递参数,从而实现动态生成内容。服务器可以根据路径信息中的参数来生成不同的内容或返回不同的数据。

六.Https协议

        Http协议与Https最大的区别是Http协议是明文传输,Https协议是密文传输;当明文传输的报文被拦截后极易造成信息泄露!!!

 对称加密算法

          对称加密算法是一种使用相同的密钥进行加解密的算法,其加密和解密过程相互对称。在对称加密算法中,消息的发送方使用密钥将明文转化为密文,而消息的接收方则使用相同的密钥将密文转化回明文。

对称加密算法的主要特点包括:

  1. 加密和解密使用相同的密钥,因此速度较快。
  2. 密钥的管理较为困难,需要确保密钥的安全性。
  3. 对称加密算法通常具有较高的加密强度,可以提供较高的安全性。
  4. 若公钥在发送图中被拦截会导致信息泄露。

非对称加密算法

    非对称加密算法是一种使用不同的密钥进行加密和解密的加密算法。它使用一对密钥,包括公钥和私钥,其中公钥用于加密数据,私钥用于解密数据。

 总结:为防止对称加密算法中客户端公钥在传输给服务端的过程中被窃取,通常使用非对称加密算法来加密客户端的公钥,这样即使服务端的公钥被窃取,由于没有服务端的私钥所以无法解密从而获得客户端的公钥;而客户端与服务端之间的报文则使用对称加密算法进行加密从而提高通讯效率。


总结

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

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

相关文章

第一篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas库

传奇开心果博文系列 系列博文目录Python的自动化办公库技术点案例示例系列 博文目录前言一、主要特点和功能介绍二、Series 示例代码三、DataFrame示例代码四、数据导入/导出示例代码五、数据清洗示例代码六、数据选择和过滤示例代码七、数据合并和连接示例代码八、数据分组和聚…

Linux系统管理:虚拟机 Kali Linux 安装

目录 一、理论 1.Kali Linux 二、实验 1.虚拟机Kali Linux安装准备阶段 2.安装Kali Linux 2. Kali Linux 更换国内源 3. Kali Linux 设置固定IP 4. Kali Linux 开启SSH远程连接 5. MobaXterm远程连接 Kali Linux 三、问题 1.apt 命令 取代哪些 apt-get命令 一、理论…

《OpenScene: 3D Scene Understanding with Open Vocabularies》阅读笔记1

传统的3D场景理解方法依赖于带标签的3D数据集,用于训练一个模型以进行单一任务的监督学习。我们提出了OpenScene,一种替代方法,其中模型在CLIP特征空间中预测与文本和图像像素共同嵌入的3D场景点的密集特征。这种零样本方法实现了与任务无关的训练和开放词汇查询。例如,为了…

Phoncent博客:探索AI写作与编程的无限可能

Phoncent博客,一个名为Phoncent的创新AIGC博客网站,于2023年诞生。它的创始人是庄泽峰,一个自媒体人和个人站长,他在网络营销推广领域有着丰富的经验。庄泽峰深知人工智能技术在内容创作和编程领域的潜力和创造力,因此…

有趣的CSS - 闪烁的鸿星尔克文字招牌效果

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是利用 animation 动画实现一个闪烁的霓虹灯文字效果。 《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html 代码css 部分代码 完整代码如下html…

使用Spark探索数据

需求分析 使用Spark来探索数据是一种高效处理大规模数据的方法,需要对数据进行加载、清洗和转换,选择合适的Spark组件进行数据处理和分析。需求分析包括确定数据分析的目的和问题、选择合适的Spark应用程序和算法、优化数据处理流程和性能、可视化和解释…

【嵌入式实践】【芝麻】【设计篇-3】从0到1给电动车添加指纹锁:项目整体规划

0. 前言 该项目是基于stm32F103和指纹模块做了一个通过指纹锁控制电动车的小工具。支持添加指纹、删除指纹,电动车进入P档等待时计时,计时超过5min则自动锁车,计时过程中按刹车可中断P档状态,同时中断锁车计时。改项目我称之为“芝…

基于Mahout实现K-Means聚类

需求分析 需要对数据集进行预处理,选择合适的特征进行聚类分析,确定聚类的数量和初始中心点,调用Mahout提供的K-Means算法进行聚类计算,评估聚类结果的准确性和稳定性。同时,需要对Mahout的使用和参数调优进行深入学习…

顶会ICLR2024论文Time-LLM:基于大语言模型的时间序列预测

文青松 松鼠AI首席科学家、AI研究院负责人 美国佐治亚理工学院(Georgia Tech)电子与计算机工程博士,人工智能、决策智能和信号处理方向专家,在松鼠AI、阿里、Marvell等公司超10年的技术和管理经验,近100篇文章发表在人工智能相关的顶会与顶刊…

Cloud整合Zookeeper代替Eureka

微服务间通信重构与服务治理笔记-CSDN博客 Zookeeper是一个分布式协调工具,可以实现注册中心功能 安装Zookeeper 随便 就用最新版本吧 进入Zookeeper 包目录 cd /usr/local/develop/ 解压 tar -zxvf apache-zookeeper-3.9.1-bin.tar.gz -C /usr/local/develop 进入配置文件…

StarRocks实战——首汽约车实时数仓实践

目录 前言 一、引入背景 二、OLAP引擎选型 三、架构演进 四、实时数仓构建 五、业务实践价值未来规划 原文大佬的这篇首汽约车实时数仓实践有借鉴意义,这里摘抄下来用作学习和知识沉淀。 前言 首汽约车(以下简称“首约”)是首汽集团打造…

Vue+SpringBoot打造大学计算机课程管理平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验课程档案模块2.2 实验资源模块2.3 学生实验模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 实验课程档案表3.2.2 实验资源表3.2.3 学生实验表 四、系统展示五、核心代码5.1 一键生成实验5.2 提交实验5.3 批阅实…

131. 分割回文串(力扣LeetCode)

文章目录 131. 分割回文串题目描述回溯代码 131. 分割回文串 题目描述 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1: 输入&#xf…

Android 架构MVI、MVVM、MVC、MVP

目录 一、MVC(Model-View-Controller) 二、 MVP(Model-View-Presenter) 三. MVVM(Model-View-ViewModel) 四. MVI(Model-View-Intent) 五.MVI简单实现 先简单了解一下MVC、MVP和…

索引使用规则6——单列索引联合索引

1、单列索引 单列索引:即一个索引只包含单个列 举个例子 1.1、给phone和那么建立索引 create index index_name on tb_qianzhui(name); create index index_phone on tb_qianzhui(phone);1.2、查询发现可能的索引有好几个,但是最终选择了phone的索引…

萝卜大杂烩 | 提高数据科学工作效率的 8 个 Python 库

本文来源公众号“萝卜大杂烩”,仅用于学术分享,侵权删,干货满满。 原文链接:提高数据科学工作效率的 8 个 Python 库 在进行数据科学时,可能会浪费大量时间编码并等待计算机运行某些东西。所以我选择了一些 Python 库…

贪吃蛇(C语言)步骤讲解

一:文章大概 使用C语言在windows环境的控制台中模拟实现经典小游戏 实现基本功能: 1.贪吃蛇地图绘制 2.蛇吃食物的功能(上,下,左,右方向控制蛇的动作) 3.蛇撞墙死亡 4.计算得分 5.蛇身加…

[C语言]——C语言常见概念(1)

目录 一.C语言是什么、 二.C语言的历史和辉煌 三.编译器的选择(VS2022为例) 1.编译和链接 2.编译器的对比 3.VS2022 的优缺点 四.VS项目和源文件、头文件介绍 五.第⼀个C语言程序 ​​​​​​​ 一.C语言是什么、 ⼈和⼈交流使⽤的是⾃然语⾔&…

【python】爬取链家二手房数据做数据分析【附源码】

一、前言、 在数据分析和挖掘领域中,网络爬虫是一种常见的工具,用于从网页上收集数据。本文将介绍如何使用 Python 编写简单的网络爬虫程序,从链家网上海二手房页面获取房屋信息,并将数据保存到 Excel 文件中。 二、效果图&#…

【JS】解构赋值注意点,解构赋值报错

报错代码 const 小明 { email: 6, pwd: 66 } const 小刚 { email: 9, pwd: 99 }const { email } 小明 const { email } 小刚 报错图 原因 2个常量重复,重复在同一个作用域内是不能重复的,例如大括号内{const a 1; const a 2} 小伙伴A提问 问&…