HTTP协议深入

1.了解web和网络基础

  • 有客户端和服务端双方参与交互

  • 客户端发送请求:request

  • 服务端根据请求给出响应:response

  • 请求通过URL来指定要获取都得资源

  • 响应内容可以是HTML网页,或者用json表示的数据或者其他二进制文件内容

  • Web使用一种名为HTTP的协议作为规范,完成从客户端到服务端的一系列运作流程,而协议是指定规则的约定。Web是建立在HTTP协议上的通信。

1.1 web万维网和HTTP协议

1.1.1 www万维网诞生

诞生于:1989年3月,蒂姆·伯纳斯-李 博士的一篇论文,提出了让远隔两地的研究者们共享知识的设想。

最初的理念:借助多文档之间的相关联形成超文本(HyperText),连成可互相参阅的WWW(World Wide Web,万维网)。

HTTP:HyperText Transfer Protocol,超文本传输协议。 HTML:HyperText Markup Language,超文本标记语言。 URL:Uniform Resource Locator,统一资源定位符。

1.2 HTTP的历史和版本

1.3 当下http协议的使用现状

  • 场景:除了网页,承载更多的互联网应用场景

  • 前端:不再依赖浏览器,可以是手机app,客户端或者一另个服务器

  • 传输方式:Ajax的兴起改变了原本的同步请求模式

  • 传输内容:HTML网页,二进制文件以外也可以依靠Json表示更广泛的内容

  • 数据安全:HTTP+SSL组成HTTPS协议,同时扩展更多的密码学能力

2.与http相关的的协议

2.1 TCP/IP协议族

2.1.1 IP网际协议

  • IP(Internet Protocol)协议位于网络层,负责将数据包递给对方。

  • 任何一个参与到网络上的设备都会用到IP协议,为系统分配对应的IP地址。

  • IP协议和IP地址不是一回事,IP地址是表明网络中每个设备的标签。

  • IP地址需要转换成网卡的物理地址(MAC地址)才能真正完成数据通信。实际上网络中数据传输是异常复杂的,没有人能够完全跟踪整个传输过程,网络中大小网络、广域网、城域网、局域网等嵌套,需要路由才能真正传输到目的地。

  • IP地址目前分为 IPV4 和 IPV6两个版本。

2.1.2 TCP协议

  • TCP位于传输层,提供可靠的字节流服务。

  • 将大的数据分割成报文段,并将数据可靠的传输给对方。

  • 保证可靠----三次握手策略

2.2DNS协议

让IP地址更容易被记住的DNS协议

  • DNS(Domain Name System)域名服务,与HTTP一样,位于TCP/IP分层的应用层的协议,它负责提供域名到IP地址的解析服务。

  • 域名:www.baidu.com, pic.baidu.com, sports.sina.com.cn

  • 根域名: com cn com.cn org tech info me

  • 级域名:baidu.com sina.com.cn qq.com 163.com 12306.cn

  • 子域名:pic.baidu.com sports.sina.com.cn news.qq.com

  • 如果要使用域名完成网络通讯,必须先从域名服务器获取域名对应的IP地址。

相关网络协议---各协议之间的关系图

2.3SSL,HTTPS协议

HHTP协议安全性不足

  • 公开。HTTP是一个公开的协议,任何人都可以随时了解协议的细节,并可以模仿、模拟、伪造HTTP请求获取服务端资源。

  • 网络。HTTP是为网络数据传输而生的,根本职责就是传输数据,那么网络上任何一个 传输节点,包括代理、网管、路由器等都可以随时知道HTTP传输的内容。

  • 明文。HTTP/1.1协议本身没有加密规则,所以整个报文体都是明文在网络上流转。

HTTP协议安全性的解决办法

SSL/TSL安全传输
  • SSL(Secure Socket Layer) 安全 套接层

  • TSL(Transport Layer Security)安全传输层协议

  • HTTP与SSL或TSL组合使用,建立安全通路

    • SSL+HTTP = HTTPS

    • HTTPS(HTTP Secure)超文本传输安全协议

  • SSL通路与TCP一样,为了安全和完整性都牺牲了一些效率

加密报文体

  • HTTP协议的报文分为:报文头、报文体

  • 针对报文体的明文内容,结合密码学相关技术

  • 只将报文体的内容进行加密,保证数据安全

  • 这种方式需要客户端、服务端单独支持,提高了系统实现的复杂度

  • 而密钥和加密算法可以完全私有化,安全性相对较高

实际应用中,已经更多采用两种方式结合,即加密通讯又加密报文体

3.HTTP协议

HTTP是什么?

HyperText Transfer Protocol ,超文本传输协议

  • 协议

    • 有两个或者多个参与者

    • 定义了交互的约定和规范

  • 传输

    • http是一个专门用来在两点之间传输内容的协议

    • 包括请求方和响应方

  • 超文本

    • http不仅可以传输文本

    • 还可以传输音频、视频、文件

HTPP不是什么?

  • 不是浏览器、不是操作系统

    • http只是浏览器等客户端传输数据时使用的规范

  • 不是HTML

    • http和html经常一起出现但是他们不一样

    • html是超文本的载体,传输的内容

  • 不是编程语言

    • http不是java、python这种编程语言

    • 但是可以用语言来模拟http请求

3.1 URI与URL

URI(Uniform Resource Identifier),统一资源标识符

URL(Uniform Resource Locator),统一资源定位符,也就是网址

3.2 http报文结构

一个例子

3.3 请求方法

3.4 响应状态码

3.5 http请求头

Http首部

重要的HTTP首部参数

3.6 无状态与身份认证

4.HTTP协议总结

HTTP协议特点

  • 灵活可扩展、首部、内容、状态码都可自定义

  • 可靠的传输协议、基于TCP协议

  • 是一个应用层协议,与ftp、smtp相比应用更广泛

  • 采用请求应答通讯模式,客户端和服务端(C/S)

  • 无状态的协议

  • 实体数据可分段、可压缩、支持多语言、灵活编码

HTTP/1.1的优点

  • 简单、灵活、容易扩展

  • 应用广泛、不受编程语言、软件、硬件的约束

  • 无状态减轻服务器的压力、更容易组成服务器集群

  • 明文传输让协议更容易理解、更直观、调试更容易

HTTP/1.1的缺点

  • 无状态需要Cookie技术支持

  • 明文传输让数据毫无隐私可言、不安全

  • 没有客户身份验证、容易伪装、篡改

  • 请求应答模式、对高并发网络传输有挑战

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

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

相关文章

AI与大模型工程师证书研修班报名啦!

人工智能大模型是指拥有超大规模参数(通常在十亿个以上)、超强计算资源的机器学习模型,能够处理海量数据,完成各种复杂任务,如自然语言处理、图像识别等。计算机硬件性能不断提升,深度学习算法快速优化&…

ESP32CAM物联网教学03

ESP32CAM物联网教学03 物联网小车 小智突发奇想:要是我在点灯物联APP中多增加几个按钮,控制小车的行驶方向,不就可以做成遥控小车了吗? 点灯物联控制小车的行驶方向 我们可以重新编辑点灯物联APP中的设备控件界面,如…

开关电源中强制连续FCCM模式与轻载高效PSM,PFM模式优缺点对比笔记

文章目录 前言一、连续FCCM模式优点:缺点: 二,轻载高效PSM,PFM优点:缺点: 总结 前言 今天我们来学习下开关电源中,强制连续FCCM模式与轻载高效PSM,PFM模式优缺点对比 一、连续FCCM模式 优点: …

mac中如何恢复因为破解脚本导致的IDEA无法启动的问题

问题 为了在mac中安装免费的2024版idea,导致下载了一个脚本,使用这个脚本后,但是发现idea还没有破解,相反导致idea无法启动,每次点击,都会弹出“cannot start IDE…” 问题排查 在访达中点击mac的应用程…

docker -run hello-world超时

主要原因就是尝试拉取库的时候没有从阿里云镜像里拉&#xff0c;所以设置一下就好了 这里使用的是ubuntu系统&#xff08;命令行下逐行敲就行了&#xff09; sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": [&quo…

Adobe Acrobat添加时间戳服务器

文章目录 前言一、Adobe Acrobat添加时间戳服务器1.打开Adobe Acrobat软件2.点击【菜单】→ 【首选项】3.点击【安全性】→【更多】4.点击【新建】5.输入【名称】→【服务器URL】 前言 一、Adobe Acrobat添加时间戳服务器 1.打开Adobe Acrobat软件 2.点击【菜单】→ 【首选项…

模拟退火算法1——简介

模拟退火算法来源于固体退火原理&#xff0c;将固体加温至充分高&#xff0c;再让其徐徐冷却&#xff0c;加温时&#xff0c;固体内部粒子随温升变为无序状&#xff0c;内能增大&#xff0c;而徐徐冷却时粒子渐趋有序&#xff0c;在每个温度都达到平衡态&#xff0c;最后在常温…

[C++][设计模式][访问器]详细讲解

目录 1.动机2.模式定义3.要点总结4.代码感受1.代码一2.代码二 1.动机 在软件构件过程中&#xff0c;由于需求的变化&#xff0c;某些类层次结构中常常需要增加新的行为(方法)&#xff0c;如果直接在基类中做这样的更改&#xff0c; 将会给子类带来很繁重的变更负担&#xff0c…

数据恢复篇:5 款最佳 Mac 数据恢复软件

说到保护我们的数字生活&#xff0c;数据恢复软件的重要性怎么强调都不为过。无论您是意外删除了假期照片的普通用户&#xff0c;还是面临硬盘损坏的专业人士&#xff0c;随之而来的恐慌都是普遍存在的。幸运的是&#xff0c;数据恢复工具可以缓解这些压力。在Mac用户可用的众多…

zabbix小白入门:从SNMP配置到图形展示——以IBM服务器为例

作者 乐维社区&#xff08;forum.lwops.cn&#xff09;许远 在运维实践中&#xff0c;Zabbix作为一款强大的开源监控工具&#xff0c;被广泛应用于服务器、网络设备和应用程序的监控&#xff0c;成为保障业务连续性和高效运行的关键。然而&#xff0c;对于Zabbix的初学者来说&a…

人工智能--循环神经网络

个人主页&#xff1a;欢迎来到 Papicatch的博客 课设专栏 &#xff1a;学生成绩管理系统 专业知识专栏&#xff1a; 专业知识 文章目录 &#x1f349;引言 &#x1f349;概述 &#x1f348;基本概念 &#x1f34d;定义 &#x1f34d;结构 &#x1f34c;输入层 &#…

行业模板|DataEase旅游行业大屏模板推荐

DataEase开源数据可视化分析工具于2022年6月发布模板市场&#xff08;https://templates-de.fit2cloud.com&#xff09;&#xff0c;并于2024年1月新增适用于DataEase v2版本的模板分类。模板市场旨在为DataEase用户提供专业、美观、拿来即用的大屏模板&#xff0c;方便用户根据…

开关电源的电路组成原理

一、 开关电源的电路组成 开关电源的主要电路是由输入电磁干扰滤波器&#xff08;EMI&#xff09;、整流滤波电路、功率变换电路、PWM控制器电路、输出整流滤波电路组成。辅助电路有输入过欠压保护电路、输出过欠压保护电路、输出过流保护电路、输出短路保护电路等。 开关电源…

基于Hadoop平台的电信客服数据的处理与分析④项目实现:任务18: 数据展示

任务描述 接下来我们需要将根据业务需求将某人按照不同维度查询出来的结果&#xff0c;展示到Web页面上。 任务指导 数据展示模块流程图&#xff1a; 数据展示使用Java的SSM框架&#xff0c;需要实现的代码包括&#xff1a; 1. 实体类 2. 数据库操作 3. 业务逻辑操作 4.…

springboot旅游管理系统-计算机毕业设计源码16021

摘 要 本文旨在设计和实现一个基于Spring Boot框架的旅游管理系统。该系统通过利用Spring Boot的快速开发特性和丰富的生态系统&#xff0c;提供了一个高效、可靠和灵活的解决方案。系统将实现旅游景点信息的管理、线路规划、跟团游玩、旅游攻略、酒店信息管理、订单管理和用户…

MySQL—创建和修改数据表结构

创建表 实例&#xff1a; CREATE TABLE user (id INT,name VARCHAR(255),password VARCHAR(255),birthday DATE) CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB; 显示数据库中的表 show tables from hsp; 显示表结构 desc dept; 修改表 实例&#xff1a; 代码&…

第十五章 路由器综合路由配置

实验目标 掌握综合路由器的配置方法&#xff1b; 掌握查看通过路由重分布学习产生的路由&#xff1b; 熟悉广域网线缆的链接方式&#xff1b; 实验背景 假设某公司通过一台三层交换机连到公司出口路由器 R1 上&#xff0c;路由器 R1 再和公司外的另一台路由器 R2 连接。…

【Python实战因果推断】17_线性回归的不合理效果7

目录 Regression for Dummies Conditionally Random Experiments Dummy Variables Regression for Dummies 回归和正交化固然很好&#xff0c;但归根结底&#xff0c;你必须做出独立性假设。你必须假设&#xff0c;在考虑到某些协变量的情况下&#xff0c;干预看起来与随机分…

python 获取Shopee虾皮商家店铺商品列表 虾皮api数据采集

此api接口可用于获取虾皮平台商家店铺的商品列表&#xff0c;目前land参数支持id、vn、my、th、sg、ph、tw&#xff08;印尼、越南、马来、泰国、新加坡、菲律宾、台湾&#xff09;。 若有需要&#xff0c;请点击文末链接联系我们。 详细采集页面如下 https://shopee.tw/yue…

使用Adobe Acrobat对PDF文档进行数字签名

文章目录 前言一、使用Adobe Acrobat对PDF文档进行数字签名1.使用Adobe Acrobat打开需要进行签名的PDF文档2. 点击【查看更多】3.点击【使用证书】4.点击【数字签名】5.使用鼠标选定一个区域6.选择您需要使用的证书 → 点击【继续】7.点击【签名】8.签名成功 前言 一、使用Ado…