当前位置: 首页 > news >正文

【HTTP】详解

目录

  • HTTP 基本概念
    • 啥是HTTP,有什么用?
    • 一次HTTP请求的过程
    • 当你在浏览器中输入一个浏览器地址,它会发送什么 ?---(底层流程)
    • HTTP的协议头
      • 请求头(对应客户端)
        • 一些请求头
        • 请求方法
      • 响应头(对应服务端返回)
      • POST与GET的区别
      • HTTP状态码
  • HTTPS
    • 什么是https?
    • https要解决两个问题
    • https特点
    • https工作流程

HTTP 基本概念

啥是HTTP,有什么用?

HTTP(HyperTextTransferProtocol,超文本传输协议)是用于客户端和服务器之间数据传输的应用层协议,主要用在Web浏览器和服务器之间的通信。HTTP最初是为传输HTML文档设计的,但现在支持多种类型的数据,如图片、视频、文本等。

举个咱们最熟悉的例子:

  • Web浏览:浏览器使用HTTP从服务器获取网页和资源,如图片和CSS文件。
  • 数据传输:开发者使用HTTP在客户端和服务器之间发送和接收数据,特别是在WebAPI和REST服务中。你看当你通过浏览器访问一个网页的时候。你往往会输入:http://www.baidu.com.
    在这里插入图片描述

无状态性:每个HTTP请求都是独立的,不记录之前的任何请求信息,请求一次,就返回一次。这简化了协议的实现,但可能会需要使用其他方式(如Cookies或Sessions)来保存状态。

一次HTTP请求的过程

  1. 建立连接:
    客户端(如浏览器)与服务器之间建立TCP连接。对于HTTPS请求,建立 SSL/TLS安全连接。
  2. 发送请求:
    客户端向服务器发送一个HTTP请求,包括请求行(如GET/index.html HTTP/1.1)、请求头(如Host、User-Agent等)和可选的请求主体(如 POST数据)。
  3. 服务器处理请求:
    服务器接收并解析请求,根据请求路径和参数决定返回的数据或页面内容。
  4. 发送响应:
    服务器向客户端发送HTTP响应,包括状态行(如HTTP/1.1 200 OK)、响应头(如Content-Type等)和响应主体(如网页内容)。
  5. 关闭连接:
    连接可以被立即关闭,或保持一段时间(使用Connection:keep-alive)。
  6. 客户端处理响应:
    客户端解析并展示网页或处理数据。

在这里插入图片描述

当你在浏览器中输入一个浏览器地址,它会发送什么 ?—(底层流程)

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

HTTP的协议头

HTTP协议分为请求头和响应头

请求头(对应客户端)

HTTP请求包含三部分:请求行(构建请求阶段),请求头,请求体。
在这里插入图片描述

一些请求头
  • Host:指定服务器的域名和端口号(例如:Host:www.example.com)。
  • User-Agent:描述客户端应用程序的名称和版本(例如:User-Agent:Mozilla/5.0)。
  • Accept:指示客户端可以处理的媒体类型(例如:Accept:text/html)。
  • Content-Type:指示请求主体的数据类型,常见于POST或PUT请求(例如:Content-Type:applic ation/json)。
  • Authorization:包含认证凭据,用于保护的资源访问(例如:Authorization:Basic)。
请求方法

在这里插入图片描述

响应头(对应服务端返回)

服务器端接收到客户端的请求,将作出处理并返回相应数据,包含响应行,响应头,响应体。
在这里插入图片描述

POST与GET的区别

  • 数据传输方式
    • GET请求:参数通过URL传递,数据包含在URL的查询字符串中(如?name=John&age=30)。URL长度有限,传输的数据量较小,适用于不敏感数据的请求。
    • POST请求:参数在请求主体中传输,适合发送较大数据量或敏感信息,如表单数据或文件上传。
  • 安全性
    • GET请求:不适合传输敏感数据,因为参数会暴露在URL中,可能被缓存或记录。
    • POST请求:更安全,参数不会显示在URL中,但仍需通过加密(如HTTPS)来保护数据。
  • 缓存
    • GET请求:可被浏览器缓存,适合可重复访问的请求。
    • POST请求:默认不被缓存,一般用于提交数据。

HTTP状态码

状态码类别含义
1xx信息状态码
2xx成功状态码
3xx重定向状态码
4xx客户端错误状态码
404Not Found资源未找到,服务器无法提供请求资源
5xx服务器错误状态码

HTTPS

什么是https?

HTTPS(HyperTextTransferProtocolSecure)是HTTP协议的安全版本,用于在客户端(如浏览器)和服务器之间安全地传输数据。HTTPS通过加密机制来保护用户和网站之间传输的信息,确保数据的机密性和完整性。

早期很多公司刚起步的时候,使用的应用层协议都是HTTP,而HTTP无论是用GET方法还是POST方法传参,都是没有经过任何加密的,因此早期很多的信息都是可以通过抓包工具抓到的。
为了解决这个问题,于是出现了HTTPS协议,HTTPS实际就是在应用层和传输层协议之间加了一层加密层(SSL&TLS),这层加密层本身也是属于应用层的,它会对用户的个人信息进行各种程度的加密。HTTPS在交付数据时先把数据交给加密层,由加密层对数据加密后再交给传输层。

https要解决两个问题

  • 加密防篡改
  • 通过证书来验证服务端是可靠的

在这里插入图片描述

https特点

  • 数据加密:
    HTTPS使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议来加密数据。即使数据被第三方拦截,拦截者也无法读耳改数据内容,因为它们是加密的。
  • 数据完整性:
    数据在传输过程中不会被篡改或损坏。加密协议会对数据进行校验,过程中没有被意外或恶意修改。
  • 身份验证:
    HTTPS使用数字证书来验证服务器的身份,确保用户连接到的是真正的服务器,而不是被冒充的网站。这种身份验证可以防止“中间人攻击”,提高信任。

https工作流程

  • 握手过程:
    • 当你在浏览器中访问一个HTTPS网站时,浏览器和服务器会进行一个加密“握手”过程。
    • 握手的目的是交换加密密钥,并建立一个安全的加密连接。这个过程会使用SSL/TLS协议,并涉及验证服务器的数字证书。
  • 加密传输:
    • 握手成功后,浏览器和服务器之间的所有数据都将通过加密通道传输,确保数据的安全性。
  • 使用数字证书:
    • 网站通过使用由可信的证书颁发机构(CA)签发的数字证书来证明自已的身份。浏览器会检查证书的有效性,并显示安全锁图标,提示用户这是一个安全的连接。

相关文章:

【HTTP】详解

目录 HTTP 基本概念啥是HTTP,有什么用?一次HTTP请求的过程当你在浏览器中输入一个浏览器地址,它会发送什么 ?---(底层流程)HTTP的协议头请求头(对应客户端)一些请求头请求方法 响应头…...

cursor重构谷粒商城01——为何要重构谷粒商城

前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。 本项目将基于谷粒商城…...

如何在 ASP.NET Core 中实现速率限制?

在 ASP.NET Core 中实现速率限制(Rate Limiting)中间件可以帮助你控制客户端对 API 的请求频率,防止滥用和过载。速率限制通常用于保护服务器资源,确保服务的稳定性和可用性。 ASP.NET Core 本身并没有内置的速率限制中间件&…...

STM32-笔记43-低功耗

一、什么是低功耗? 低功耗‌是指通过优化设计和采用特定的技术手段,降低电子设备在运行过程中消耗的能量,从而延长电池寿命、提高性能和减少发热。低功耗设计主要从芯片设计和系统设计两个方面进行,旨在减少所有器件的功率损耗&am…...

Facebook 隐私风波:互联网时代数据安全警钟

在社交媒体飞速发展的今天,个人数据的隐私保护已成为全球关注的焦点。作为全球最大的社交平台之一,Facebook面临的隐私问题,尤其是数据泄露事件,频繁引发公众的广泛讨论。从用户信息被滥用到数据泄漏,Facebook的隐私挑…...

Java 中的 ZoneOffset

介绍 在我们的这个世界上因为地球是圆的,所以每个国家都会有自己特定的时区。 时区在我们对时间的使用上扮演了非常重要的角色。但又因为时区的存在,又给我们带来了很多的麻烦,比如北美地区使用的夏令时和中国统一使用东 8 区的时间等。 当…...

amis模板语法、数据映射与表达式

模板字符串 表达式中获取变量 可以支持在普通文本中&#xff0c;使用数据映射语法&#xff1a;${xxx} 获取数据域中变量的值 "Hello ${text}"渲染 html 使用数据映射语法&#xff1a;${xxx} 获取数据域中变量的值&#xff0c;并渲染 HTML "<h1>Hello<…...

频域增强通道注意力机制EFCAM模型详解及代码复现

背景与动机 在深度学习领域,如何有效处理时间序列数据一直是一个重要的研究方向。近年来, 频域分析技术 在时间序列处理中展现出了巨大潜力,特别是离散余弦变换(DCT)因其能够高效捕捉低频信息并避免高频噪声干扰而受到广泛关注。 FECAM模型的开发正是基于这一背景,旨在…...

GitLab 国际站中国大陆等地区停服,如何将数据快速迁移到云效

代码托管平台 GitLab 国际站&#xff08;GitLab.com&#xff09;近日发布公告&#xff0c;官宣即将停止对中国大陆、香港、澳门地区的用户账号提供服务&#xff0c;并提供 60 天过渡期自行迁移账户数据&#xff0c;超期未迁移的账号可能会被 GitLab 清除。这一重要决策引起了全…...

BPG图像库和实用程序(译)

1)快速介绍 编辑Makefile以更改编译选项&#xff08;默认编译选项对于Linux应该是OK的&#xff09;。输入make来编译&#xff0c;输入make install来安装编译后的二进制文件。bpgview&#xff1a;为了编译它&#xff0c;你需要安装SDL和SDL_image库。Emscripten的使用&#xff…...

简述1个业务过程:从客户端调用接口,再到调用中间件(nacos、redis、kafka、feign),数据库的过程

以下是一个常见的业务过程示例&#xff0c;展示了从客户端调用接口&#xff0c;再到调用中间件&#xff08;Nacos、Redis、Kafka、Feign&#xff09;和数据库的过程&#xff1a; 假设我们有一个电商系统&#xff0c;客户端要查询某个商品的详细信息&#xff0c;这个商品信息可…...

01.02、判定是否互为字符重排

01.02、[简单] 判定是否互为字符重排 1、题目描述 给定两个由小写字母组成的字符串 s1 和 s2&#xff0c;请编写一个程序&#xff0c;确定其中一个字符串的字符重新排列后&#xff0c;能否变成另一个字符串。 在这道题中&#xff0c;我们的任务是判断两个字符串 s1 和 s2 是…...

什么是.NET中的反射,它有哪些应用场景

反射是.NET框架提供的一种强大的机制&#xff0c;它允许程序在运行时查询和操作对象的类型信息。以下是对.NET中反射的详细解释及其应用场景&#xff1a; 一、反射的定义 在.NET中&#xff0c;所有类型的信息&#xff08;包括类、结构、委托、接口、枚举等以及它们的成员信息…...

Linux离线部署ELK

文章目录 前期准备开始安装安装elastic search安装logstash安装kibana 配置ELK配置ElasticSearch配置logstash配置kibana 启动ELK启动命令启动测试 设置ELK策略创建ILM策略将ILM策略与日志index关联查看索引是否被ILM策略管理 前期准备 ELK包含三部分软件 ElasticSearch用作搜…...

解决 chls.pro/ssl 无法进入问题

使用charles的xdm不知道有没有遇到这样的问题。手机上访问 chls.pro/ssl 就始终进不去了… 各种检查&#xff0c;ip地址、证书&#xff0c;ssl设置等等都正常&#xff0c;就是进不去。 在一位好心人的提醒下得到了一个解决办法。那就是换一个地址 最新地址是: charlesproxy…...

Rust 游戏开发框架指南

Rust 游戏开发框架指南 主流游戏引擎 1. Bevy 最受欢迎的 Rust 游戏引擎之一&#xff0c;基于 ECS&#xff08;实体组件系统&#xff09;架构。 特点&#xff1a; &#x1f680; 高性能 ECS 系统&#x1f4e6; 热重载支持&#x1f3a8; 现代渲染器&#x1f50a; 内置音频系…...

hadoop3.3和hive4.0安装——单节点

hadoop3.3x和hive4.0安装部署 为什么我要安装hive4.0&#xff0c;因为阿里云镜像只有hive4.0 软件相互兼容性版本 系统centos7 uname -a如果内核3.0以上可以用 安装jdk1.8以上的版本&#xff08;配置好环境变量&#xff09; hadoop3.3.x与hive4.0.x 创建目录 mkdir -p /us…...

centos安装golang

1.下载golang golang所有版本网址 https://studygolang.com/dl //下载并解压到/usr/local文件下 wget https://studygolang.com/dl/golang/go1.18.3.linux-amd64.tar.gz //解压并复制到/user/local文件夹下 tar -C /usr/local -zxf go1.18.3.linux-amd64.tar.gz 2.编辑环境变…...

博图 linucx vmware

电脑与 PLC 的连接 博图装在虚拟机里&#xff0c;PLC 通过网线与电脑连接 可以是使用网线直接连接&#xff0c;也可以中间接个路由器或交换机 问题在于虚拟机提供多种网络连接方式&#xff0c;但不是每种都可以与 PLC 建立连接 以 VMware 虚拟机为例&#xff0c;进入编辑/虚拟网…...

Service Work离线体验与性能优化

Service Work离线体验与性能优化 引言 先放个意外事件&#xff0c;万事开头难&#x1f923;&#x1f923;&#x1f923; 原计划是分享离线应用与数据资源缓存的应用实践&#xff0c;结果发现这一技术已被web标准废弃 曾经做过一个PC应用&#xff0c;业务需求要求应用具备容灾…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...