01-http概述

HTTP概述

  • HTTP使用的是可靠地数据传输协议。
  • HTTP属于应用层协议

Web客户端和服务器

  • web服务器:又称http服务器,用于存储web内容,并向web客户端提供web内容
  • web客户端:用于请求web服务器的应用软件,常见为浏览器

资源

媒体类型

MIME类型是一种文本标记,表示一种主要对象类型和一个特定的子类型,用/分隔;

URI(统一资源标识符)

URI的两种形式为:URL与URN

URL(统一资源定位符)
  1. 描述一台特定服务器上某资源的特定位置
  2. 目前几乎所有URI都是URL
  3. 解析URL组成:例如:https://www.baidu.com/img/a.png;
  • 方案,说明访问资源说使用的协议类型。通常为http或https协议,上方为例即:https//
  • 服务器因特网地址(域名):上方为例即:www.baidu.com
  • 指定资源路径:上方为例即:/img/a.png
URN(统一资源名)

作为特定内容的唯一名称使用,与目前资源的所在地无关。目前处于实验阶段,并不推广使用

事务

方法

常见http方法如下:

  • GET:从服务器向客户端发送命名资源
  • PUT:将来自客户端的数据存储到一个命名的服务器资源中去
  • DELETE:从服务器中删除命名资源
  • POST:将客户端数据发送到一个服务器网管应用程序
  • HEAD:仅发送命名资源响应中的HTTP首部

状态码

  • 每条HTTP响应报文返回时都会携带一个状态码
  • 状态码都为三位数值的代码,代表着额定意义
  • 状态码后都会有一条解释性的原因短语
    常见状态码:
  • 200:OK。文档正确返回
  • 302:Redirect(重定向)。到其他地方取资源
  • 404:Not Found(未找到)。无法找到该资源

报文

  • HTTP报文是由一行一行的简单字符串组成的。HTTP报文都是纯文本,不是二进制代码
  • 请求报文(request message):web客户端向web服务器发送的报文
  • 响应报文(response message):web服务器向web客户端发送的报文

http报文的三部分

  1. 起始行:请求报文包含请求路径,请求方法,http协议版本;响应报文包含http协议版本,http状态码,状态码解释短语
  2. 首部字段(header头):每个首部字段都包含一个名字和一个值,使用:分隔,多个字段使用新行分隔,并以空行结束
  3. 主体:请求报文包含发送给web服务器的数据;响应报文包含发送给客户端的数据

链接

TCP/IP

TCP特点

  • 无差错的数据传输
  • 按序传输(数据按照发送的顺序到达)
  • 未分段的数据流(可以在任意时刻以任意尺寸将数据发送出去)
    HTTP协议栈
    HTTP协议栈

连接、IP和端口号

连接过程
http链接无端口号时,默认端口号为80

协议版本

按照时间顺序如下:

  • HTTP0.9:只支持GET方法,不支持多媒体的MIME内容,各种HTTP首部与版本号,只应该用于与老的客户端进行连接
  • HTTP1.0:添加了版本号,各种HTTP首部,一些额外的方法,以及多媒体对象的处理
  • HTTP1.1:重点关注的是校正HTTP设计中的结构性缺陷,明确语义,引入重要的性能优化措施,并删除一些不好的特性
  • HTTP2.0(HTTP-NG):目前仍在实验中。重点关注性能的大幅优化,以及更强大的服务逻辑远程执行框架

web的结构组件

代理

位于客户端和服务端之间的HTTP中间实体
在这里插入图片描述

缓存

HTTP的仓库,使常用页面的副本可以保存在离客户端更近的地方
在这里插入图片描述

网关

连接其他应用程序的特殊web服务器
在这里插入图片描述

隧道

对HTTP通信报文进行盲转发的特殊代理
在这里插入图片描述

Agent代理

发起自动http请求的半智能web客户端
在这里插入图片描述

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

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

相关文章

【ShaderLab PBR 嗜血边缘角色_美式朋克风格_“Niohoggr“_角色渲染(第一篇)】

嗜血边缘角色Cyberpunk style Unity 渲染 《嗜血边缘》截取其中的片段如下:资源分析其中Guitar贴图4张模型:人物细节图:人物模型 Inspector面板这里做一个区域区分:Body贴图1_BC贴图1_BC属性:Body贴图2_NBody贴图3_CMBody贴图4_SRMBody贴图4_RGBReflection Probe第一版Sha…

【Linux】线程同步和互斥

目录 一、线程互斥1.相关概念2.互斥锁(mutex)3.互斥锁的原理4.自定义封装一个锁 二、可重入和线程安全三、死锁死锁概念死锁四个必要条件如何避免死锁 四、线程同步1.条件变量概念条件变量接口基于阻塞队列实现生产者消费者模型 2.信号量概念信号量操作接…

深入理解React中fiber

一、前言 Fiber是对React核心算法的重写,Fiber是React内部定义的一种数据结构,将更新渲染耗时长的大任务,分为许多的小片。Fiber节点保存啦组件需要更新的状态和副作用,一个Fiber代表一个工作单元。 二、Fiber在React做了什么 …

快速排序与冒泡排序以及代码

快速排序 快速排序(Quicksort)是一种常用的排序算法,它基于分治的思想。 时间复杂度:O(nlogn) 空间复杂度:O(logn) 快速排序的基本思想如下: 选择一个元素…

xxl-job 2.2之后版本高版本executor未授权访问漏洞

xxl-job 低版本executor未授权访问 低版本的executor未授权访问漏洞是 POST /run HTTP/1.1 Host: your-ip:9999 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like G…

【租车骑绿道】python实现-附ChatGPT解析

1.题目 租车骑绿道 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 部门组织绿道骑行团建活动。租用公共双人自行车骑行,每辆自行车最多坐两人、做大载重M。 给出部门每个人的体重,请问最多需要租用多少双人自行车 输入描述 第一行两个数字m、n,自行车限重m,代表部门总…

如何初始化一个vue项目

如何初始化一个vue项目 安装 vue-cli 后 ,终端执行 vue ui npm install vue-cli --save-devCLI 服务 | Vue CLI (vuejs.org) 等一段时间后 。。。 进入项目仪表盘 设置其他模块 项目构建后目录 vue.config.js 文件相关配置 官方vue.config.js 参考文档 https://cli.vuejs.o…

BI神器Power Query(25)-- 使用PQ实现表格多列转换(1/3)

实例需求:原始表格包含多列属性数据,现在需要将不同属性分列展示在不同的行中,att1、att3、att5为一组,att2、att3、att6为另一组,数据如下所示。 更新表格数据 原始数据表: Col1Col2Att1Att2Att3Att4Att5Att6AAADD…

链表的注意事项

LeetCode 19 删除链表的倒数第N个结点 1、sudo.next head;和head sudo.next; 的区别? 他们是不一样的,前者是将head赋给sudo.next,而后者是将sudo.next赋给head。 首先ab,那么b必须存在 我想要将sudo作为虚拟头节点&#xf…

SEO搜索引擎

利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名,吸引更多的用户访问网站,提高网站的访问量,提高网站的销售能力和宣传能力,从而提升网站的品牌效应 搜索引擎优化的技术手段 黑帽SEO 通过欺骗技术和滥用搜索算法来推销毫不…

黑豹程序员-架构师学习路线图-百科:Git/Gitee(版本控制)

文章目录 1、什么是版本控制2、特点3、发展历史4、SVN和Git比较5、Git6、GitHub7、Gitee(国产)8、Git的基础命令 1、什么是版本控制 版本控制系统( Version Control )版本控制是一种管理和跟踪软件开发过程中的代码变化的系统。它…

嵌入式Linux应用开发-基础知识-第十八章系统对中断的处理③

嵌入式Linux应用开发-基础知识-第十八章系统对中断的处理③ 第十八章 Linux系统对中断的处理 ③18.5 编写使用中断的按键驱动程序 ③18.5.1 编程思路18.5.1.1 设备树相关18.5.1.2 驱动代码相关 18.5.2 先编写驱动程序18.5.2.1 从设备树获得 GPIO18.5.2.2 从 GPIO获得中断号18.5…

【QT】使用toBase64方法将.txt文件的明文变为非明文(类似加密)

目录 0.环境 1.背景 2.详细代码 2.1 .h主要代码 2.2 .cpp主要代码,主要实现上述的四个方法 0.环境 windows 11 64位 Qt Creator 4.13.1 1.背景 项目需求:我们项目中有配置文件(类似.txt,但不是这个格式,本文以…

C#,数值计算——Ranhash的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// High-quality random hash of an integer into several numeric types. /// </summary> public class Ranhash { public Ranhash() { }…

【新版】系统架构设计师 - 未来信息综合技术

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 架构 - 未来信息综合技术考点摘要信息物理系统CPS的体系架构CPS 的技术体系CPS应用场景 人工智能分类关键技术机器学习 机器人发展分类机器人4.0 边缘计算概念与特点边云协同安全应用场景 数字孪生关键技…

【RuoYi项目分析】介绍RuoYi网关的过滤器

文章目录 1. 网关的过滤器清单2. GatewayFilterFactory和GlobalFilter 的原理3. RuoYi网关的配置文件是如何配置的4. 资料参考 本文主要介绍 RuoYi 中用到的过滤器&#xff0c;以及过滤器原理简单分析。Spring Gateway 的详细原理请参考作者另外的文章。 1. 网关的过滤器清单 …

前端开发和后端开发的一些建议

前端开发和后端开发是Web开发的两个方向 前端开发主要负责实现用户在浏览器上看到的界面和交互体验&#xff0c;包括HTML、CSS和JavaScript等技术。后端开发主要负责处理服务器端的逻辑和数据&#xff0c;包括数据库操作、服务器配置和接口开发等技术。 前端开发 前端开发需…

GitHub上有助于开发微信小程序的仓库

2023年9月30日&#xff0c;周六晚上 最近帮同学在GitHub找了一些开发小程序会用到的东西 目录 UI库WePY框架基于WePY框架的Demo微信小程序开发资源汇总 UI库 GitHub - Tencent/weui-wxss: A UI library by WeChat official design team, includes the most useful widgets/m…

2023年9月随笔之摩托车驾考

1. 回头看 日更坚持了273天。 读《SQL学习指南&#xff08;第3版&#xff09;》更新完成 读《高性能MySQL&#xff08;第4版&#xff09;》持续更新 学信息系统项目管理师第4版系列持续更新 9月码字81307字&#xff0c;日均码字数2710字&#xff0c;累计码字451704字&…

Explain执行计划字段解释说明---ID字段说明

ID字段说明 1、select查询的序列号,包含一组数字&#xff0c;表示查询中执行select子句或操作表的顺序 2、ID的三种情况 &#xff08;1&#xff09;id相同&#xff0c;执行顺序由上至下。 &#xff08;2&#xff09;id不同&#xff0c;如果是子查询&#xff0c;id的序号会…