HTTP实用指南

news2024/11/17 12:38:17

HTTP实用指南

01.初始HTTP

当我们在浏览器地址栏输入一个网址或者关键字,它会给我们跳转到对应的网页,在这一过程中,内部到底是怎么运作的?

在这里插入图片描述

总结上述图片过程,用流程图来表示,如下:

处理输入信息 → 发起请求 →服务器接收请求 →浏览器读取服务器的响应 →DOM树 CSS树渲染 →页面加载完成

HTTP在计算机网络的层次结构上,属于应用层。底层是基于TCP的。

什么是HTTP?

HTTP全称为超文本传输协议。总结下来,就是如下特点:

  • 无状态
  • 应用层协议,基于TCP协议
  • 简单可扩展(可以设置请求头之类的)
  • 请求 响应

02.HTTP协议分析

HTTP发展历程:

在这里插入图片描述

HTTP/2在2015年,68%的公司都采用了。

报文

Requests method方法

GET请求一个指定资源的表示形式,使用GET的请求应该只被用于获取数据
POST用于将实体提交到指定的资源,会修改服务器那边的状态。典型应用:注册账号,修改密码
PUT用请求的信息替换目标资源的当前信息
DELETE删除指定的资源
HEAD请求一个和GET请求的响应相同的响应,但没有响应体
CONNECT建立一个到由目标资源标识的服务器的隧道
OPTIONS用于描述目标资源的通信选项
TRACE沿着目标资源的路径执行一个消息环回测试
PATCH用于对资源应用部分的修改

在我们前端开发的过程中,用的比较多的已经用高亮部分表示出来了。

上述大致可以自身特点分为两类:

Safe: 不会修改服务器那边的数据 GET HEAD OPTIONS

幂等:==同样的请求被连续执行一次和执行多次==的效果都是一样的。服务器的状态也是一样的 GET HEAD OPTIONS PUT DELETE。


状态码

  • 1**:指示信息,表示请求已经接收,需要继续处理,所以一般不会以1开头
  • 2**:成功,表示请求已经被成功接收,理解,接受 。例如 200 OK - 客户端请求成功
  • 3**:重定向,要完成请求必须进一步的操作。301 资源被永久转移到其它URL 302 临时跳转
  • 4**:客户端错误,请求有语法错误或者请求无法实现。 401 没有授权 404 资源找不到
  • 5**:服务器错误,服务器未能实现合法的请求。 500 服务器内部发生了不可预期的错误。

REST ful 接口风格

在这里插入图片描述

常用请求头

在这里插入图片描述

因为HTTP是无状态的,唯一让它有状态的处理方法就是Cookie

User-Agent 常用于获取用户是PC 移动 还是Android

常用响应头

在这里插入图片描述

缓存

分为强缓存和协商缓存

在这里插入图片描述

协商缓存通过对比Last-Modified/if-Modified-Since的时间,看文件是否更新。从而决定是否使用缓存。

浏览器的缓存调用机制

在这里插入图片描述

cookie

在这里插入图片描述

JavaScript有些获取cookie的api。HttpOnly可以避免这个情况发生。

HTTP/2

更快,更简单,更稳定。

HTTPS

加密。但这个加密的时间需要一定的时间损耗。

在这里插入图片描述

3.场景分析

案例一:

在这里插入图片描述

状态码200一定是发送了请求吗?还有可能是来自本地的缓存。

案例二:

如何更高地去提交用户体验:

在这里插入图片描述

案例三:

对于聊天室这样要求实时通信的情况下,我们HTTP已经不能满足要求了。需要使用webSocket—浏览器与服务器进行双向的动作。

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

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

相关文章

【论文翻译】Semantic Graph Convolutional Networks for 3D Human Pose Regression

【iccv论文】https://openaccess.thecvf.com/content_CVPR_2019/papers/Zhao_Semantic_Graph_Convolutional_Networks_for_3D_Human_Pose_Regression_CVPR_2019_paper.pdf 【github】https://github.com/garyzhao/SemGCN 摘要 在本文中,我们研究了用于回归的图卷积网…

ANR触发机制分析

ANR是一套监控Android应用程序响应是否及时的机制,可以把发生ANR比作是引爆炸弹,那么整个流程包含三部分组成: 埋定时炸弹:system_server进程启动倒计时,在规定时间内如果目标应用进程没有干完所有的活,则…

QEMU之一调试uboot(vexpress-a9)

u-boot版本:u-boot-2017.05开发板:vexpress-a9(没办法,目前看到的都是这个开发板,想QEMU调试tiny210,一直没看到怎么修改qemu)编译u-boot:make ARCHarm CROSS_COMPILEarm-linux-gnueabi- vexpre…

Avast 发布免费的 BianLian 勒索软件解密器

安全软件公司 Avast 发布了 BianLian 勒索软件的免费解密器,以帮助恶意软件的受害者在不向黑客支付费用的情况下恢复锁定的文件。 在 2022 年夏天 BianLian 勒索软件的活动增加后大约半年,该威胁组织入侵了多个知名组织,解密器的可用性就出现…

swagger(前言技术)

目录 一、swagger简介 1.前后端分离的特点 2.在没有swagger之前 3.swagger的作用 4.swagger的优点 二、swagger入门 1.新建springboot项目 2.集成swagger 3.开发一个controller用于测试 5.启动服务,验证集成效果 三、swagger常用注解 四、swagger使用综…

2022年PTA行业研究报告

第一章 行业概况 PTA是精对苯二甲酸(Pure Terephthalic Acid)的英文简称,在常温下是白色粉状晶体, 无毒、易燃,若与空气混合,在一定限度内遇火即燃烧。 PTA是重要的大宗有机原料之一,广泛用于化学纤维、轻…

【数据结构入门】-线性表之顺序表(1)

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【数据结构】 从今天开始,就正式进入数据结构的大门了,把握机会,好好学习,加油。 本文目录…

Arduino环境下对NodeMCU ESP8266将文件直接传入flash的三种方式

flash存储简答介绍 参考:https://www.elecfans.com/consume/572040.html flash存储器又称闪存(快闪存储器),就其本质而言,flash存储器属于EEPROM(电擦除可编程只读存储器)类型。是一种长寿命的…

Java多线程案例之单例模式

目录 一、饿汉模式 二、懒汉模式 前言:单例模式是校招中最常见的设计模式之一。下面我们来谈谈其中的两个模式:懒汉,饿汉。 何为设计模式? 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多…

【涂鸦蓝牙SDK】基于涂鸦蓝牙SDK数据传输与函数接口解析

基于涂鸦蓝牙SDK数据传输与函数接口解析1.【数据初始化部分】2.【蓝牙状态机控制】3.【数据广播过程】4.【涂鸦平台申请设备以及SDK】5.【涂鸦SDK模组源码思路解析】---- 重要:5.1 数据收发5.【移植涂鸦评估】2023.1.21 本文是基于涂鸦SDK的低功耗蓝牙BLE协议的数据…

Linux创建解压后的应用程序的桌面快捷方式

下面用一个例子演示,其他应用也差不多 下载好的安装文件为.tar.xz格式,通常默认在系统的下载文件夹下(按你实际路径)。右键点击文件,在下拉框中点击提取到此处(意思就是解压)。 解压后&#xff…

DocArray 0.21.0版本发布!新增OpenSearch后端存储,支持Redis后端存储的多语言文本搜索!...

github.com/docarray/docarrayDocArray 是一个用于处理、传输和存储多模态数据的 Python 工具包。DocArray 提供便捷的多模态数据处理功能,具备基于 Protobuf 提供高性能的网络传输性能,同时也为多种向量存储方案提供统一的 API 接口。💡 Doc…

三十三、Kubernetes中Service详解、实例第三篇

1、概述 在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。 为了解决这个问题,kubernetes提供了Service资源&…

06.动态内存管理

1. 存在动态内存分配的原因我们已经掌握的内存开辟方式有:int val 20;//在栈空间上开辟四个字节 char arr[10] { 0 };//在栈空间上开辟10个字节的连续空间//写死了 //变长数组,int arr[n],变量的方式可以指定大小,并非意味着数组…

0th HPC Game小结

PART 1 - 基础知识 一、文件读取 二进制文件 mmap https://hpcgame.pku.edu.cn/demo/scow/api/proxy/relative/192.168.100.61/35515/ fread fwrite //readFILE* fi;if(fi fopen("input.bin", "rb")){fread(&p, sizeof(int), 1, fi);fread(&n,…

RabbitMQ之消息转换器

前言:大家好,我是小威,24届毕业生,曾经在某央企公司实习,目前在某税务公司。本篇文章将记录和分享RabbitMQ消息转换器的知识点。 本篇文章记录的基础知识,适合在学Java的小白,也适合复习中&…

深入理解机器学习——关联规则挖掘:基础知识

分类目录:《深入理解机器学习》总目录 许多商业企业在日复一日的运营中积聚了大量的数据。例如,食品商店的收银台每天都收集大量的顾客购物数据。下图给出一个这种数据的例子,通常称作购物篮事务(Market Basket Transaction&#…

Elasticsearch基本使用初体验01

ElasticSearch是一款非常强大的、基于Lucene的开源搜索及分析引擎;它是一个实时的分布式搜索分析引擎,它能让你以前所未有的速度和规模,去探索你的数据。 1.es的安装 工欲善其事,必先利其器;想要学es,我们…

九龙证券|磷酸铁锂电池包和铅酸电池有哪些区别?

目前,新能源汽车电动车一般用的电池有3种,铅酸蓄电池、镍氢充电电池、锂离子电池。伴随着电动车蓄电池技能工艺的升级换代,锂电池的发展壮大和应用领域日益持续上升。那么,磷酸铁锂电池包和铅酸电池有哪些差异呢?铅酸蓄…

PowerShell 美化(oh-my-posh)

文章目录PowerShell 美化一、 添加右键菜单1、 修改默认右键菜单2、 寻找安装目录3、 修改注册表二、 样式修改1、 环境安装2、 配置使用PowerShell 美化 一、 添加右键菜单 1、 修改默认右键菜单 直接使用这个命令可以将 win11 的右键菜单修改为 win10 的右键菜单&#xff1…