《深入浅出HTTPS​​》读书笔记(2):HTTP

HTTP目前的版本是HTTP/1.1,定义在RFC 2616规范上。

HTTP的模型很简单,是一个B/S模型,由客户端和服务器组成,交互流程很简单。

◎一个HTTP客户端发送请求至HTTP服务器,然后等待服务器的响应。

 

◎一个HTTP服务器负责监听端口(默认是80),然后等待客户端的请求,处理完成后,回复给客户端。

 

【HTTP语义】

 

HTTP消息主要包括两部分,分别是HTTP语义和HTML实体。

 

HTTP消息由三部分组成。

 

◎请求行或响应行。

◎HTTP头部。

◎HTML实体,包括请求实体和响应实体。

 

前面两部分是HTTP的语义信息,客户端和服务器使用语义信息进行交谈,最后一部分就是HTML实体,由浏览器进行处理,对用户更有意义。

 

1)HTTP头部

 

(1)Accept-Encoding:gzip

 

表示浏览器支持的数据压缩算法是gzip,它等于告之服务器,是否可以使用gzip算法压缩响应后再发送。

 

(2)Host:www.example.com

 

该头部只对客户端有用,表示客户端连接互联网上的某个服务器,客户端在连接之前需要先通过DNS协议解析出www.example.com的IP地址,然后连接服务器并发送请求。

 

2)请求行

 

请求行由方法、URL、HTTP版本组成。

 

方法表示客户端以何种方式请求服务器上的资源,比如GET方法表示获取资源,POST方法表示更新服务器资源;URL表示互联网资源的地址;HTTP/1.1表示客户端本次请求所遵循的HTTP版本。

 

3)响应行

 

响应行由HTTP版本、状态码、信息提示符组成。

 

HTTP/1.1表示本次响应支持HTTP/1.1;200表示本次请求被正确处理了,如果是404表示服务器上不存在客户端需要的资源;信息提示符和状态码是一一对应的,不同的状态码有不同的描述信息。

【HTTP的特点】

1)客户端/服务器模型

HTTP是一个客户端/服务器模型,客户端和服务器通过网络交换信息。

2)HTTP是无状态的

HTTP是基于TCP的,当一个TCP连接关闭后,所有的HTTP请求/响应信息将全部消失。

在HTTP中,客户端通过Socket技术创建一个TCP/IP连接,并连接到服务器,完成信息交换后,就会关闭TCP连接。

所谓的无状态就是每次请求完成后,不会在客户端和服务器上保存任何的信息。

为了保持状态,出现了Cookie和Session技术,但是Cookie技术设计得非常不严谨,引发了很多安全问题。

3)HTTP是跨平台的

4)HTTP用途很广泛

HTTP更多的是一个数据载体,对于Web应用来说更重要的是浏览器如何处理这些数据。

不管是iOS还是Andriod应用,都需要调用基于HTTP的API接口。

 

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

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

相关文章

【ArcGIS Pro实操第5期】全局及局部空间插值:GPI、LPI、IDW等

ArcGIS Pro实操第5期:全局及局部空间插值 ArcGIS Pro-用于空间插值的丰富工具箱实操:空间插值方法1:Trend Surface Model for Interpolation-以降水数据为例方法2:Kernel Density Estimation Method-以单位面积鹿的目击数为例方法…

Lodash.js处理数组、对象、函数等常用方法介绍

参考网址:Lodash 简介 | Lodash中文文档 | Lodash中文网 安装 npm install lodash 引入 const _ require(lodash) 使用 基础数据 const array1 [{ id: 1, value: A }, { id: 2, value: B }] const array2 [{ id: 2, value: B }, { id: 3, value: C }] 交集…

spring-第十一章 注解开发

spring 文章目录 spring前言1.注解回顾1.1原理1.2springIOC注解扫描原理1.2.1解释1.2.2案例 2.声明bean的注解补充:Bean注解,管理三方包对象 3.spring注解的使用3.1加入aop依赖3.2配置文件中添加context命名空间3.3配置文件中指定要扫描的包3.4在Bean上使…

golang中的goroutine

1.golang中的主线程:(可以理解为线程/也可以理解为进程),在一个Golang程序的主线程上可以起多个协程。Golang中多协程可以实现并行或者并发。 1.1 goroutine 协程:可以理解为用户级线程,这是对内核透明的&…

CSS 入门:美化网页的魔法

CSS(层叠样式表)是一种用于描述网页文档样式的标记语言。它可以控制网页的布局、字体、颜色、大小、背景等外观效果。CSS可以与HTML结合使用,通过选择器来选择HTML元素,并为其应用样式。 CSS的基本语法由选择器和声明块组成。选择…

2024_SHCTF_week2_Crypto

pading 题目: from Crypto.Util.number import * import gmpy2 flag bSHCTF{********} assert len(flag) 39 p getPrime(512) q getPrime(512) n p * q e 0x3 pad ba_easy_problem c pow(bytes_to_long(flag pad),e,n) print(fn {n}) print(fc {c})思路…

C语言数据结构学习:[汇总]

介绍 这些是我在学习C语言数据结构时练习的一些题目以及个人笔记 大家也可以参考着来学习 正在更新 大家可以在我的gitee仓库 中下载笔记源文件 笔记源文件可以在Notion中导入 内容导航 C语言数据结构学习:单链表-CSDN博客

Python中的递归函数是如何工作的,它有哪些应用场景?

1、Python中的递归函数是如何工作的,它有哪些应用场景? Python中的递归函数是一种特殊类型的函数,它能够调用自己来解决问题。递归函数的应用非常广泛,可以解决很多不同类型的问题,比如计算阶乘、生成斐波那契数列、字…

webpack5搭建react脚手架详细步骤

1. 初始化项目 首先,创建一个新目录并初始化项目: bash mkdir create-react cd create-react pnpm init --y git init 这里使用pnpm作为包管理工具,因为它在处理依赖和速度上表现更好。 2. 安装React和TypeScript 安装React和React-DOM…

视频编辑的创意工坊,使用视频剪辑软件将视频随机分割成两段并去声进行MP3音频和M3u8文件的生成,让视频制作更高效

面对海量的视频编辑任务,你是否曾感到手足无措,渴望一种既简单又高效的方式来处理它们?别担心,媒体梦工厂软件带着它的魔法棒来啦!它就像一位技艺高超的视频巫师,能轻松帮你在线完成视频编辑任务&#xff0…

如何在SpringTask的定时任务中创建动态的定时任务

在Spring框架中,如果你需要在定时任务中动态创建新的定时任务,可以使用TaskScheduler接口。TaskScheduler提供了对任务调度的更细粒度的控制,允许你在运行时动态地创建和管理定时任务。1. 配置 TaskScheduler 首先,需要在Spring配…

提示工程(Prompt Engineering)指南(入门篇)

一、什么是AIGC AIGC全称为 “Artificial Intelligence Generated Content”,即 “人工智能生成内容”。代表了一种由语言模型和聊天机器人等人工智能系统驱动的内容创作的突破性方法。与人类作者制作的传统内容不同,AIGC 是通过算法生成的,…

二十二、Python基础语法(模块)

模块(module):在python中,每个代码文件就是一个模块,在模块中定义的变量、函数、类别人都可以直接使用,如果想要使用别人写好的模块,就必须先导入别人的模块,模块名须满足标识符规则(由字母、数…

解密 Redis:如何通过 IO 多路复用征服高并发挑战!

文章目录 一、什么是 IO 多路复用?二、为什么 Redis 要使用 IO 多路复用?三、Redis 如何实现 IO 多路复用?四、IO 多路复用的核心机制:epoll五、IO 多路复用在 Redis 中的工作流程六、IO 多路复用的优点七、IO 多路复用使用中的注…

stm32 ISP 串口程序下载

硬件原理图: 下载是通过 uart1 。不同的芯片 , 下载的uart 是不一样的。 最终连接到了 PA9, PA10 驱动的安装: 这里的驱动我已经安装过了。 程序下载软件 flymcu 是免安装的。 需要注意的点就是这些。 下载实测:…

电脑连接海康相机并在PictureBox和HWindowControl中分别显示。

展示结果: 下面附上界面中所有控件的Name,只需照着红字设置对应的控件Name即可 下面附上小编主界面的全部代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; …

【算法练习】最小生成树

题意&#xff1a;【模板】最小生成树 方法1&#xff1a;Prim算法(稠密边用优&#xff09; #include <bits/stdc.h> using namespace std; int n,m,u,v,d,ans; bool f[5001]; vector<pair<int,int>> a[5001];//用结构体和重载比直接定义小根堆似乎还快一点点…

利用 Google AI 工具提升应用智能化:ML Kit、TensorFlowLite、Cloud Vision、AutoML、Gemini

在code应用开发中&#xff0c;机器学习和人工智能正逐渐成为提升用户体验和应用智能化的重要手段。Google 提供了多种强大的 AI 工具&#xff0c;可以帮助开发者快速集成各种机器学习功能。本文将详细介绍五个关键工具&#xff1a; Firebase ML Kit、TensorFlow Lite、Google …

kafka 的高可用机制是什么?

大家好&#xff0c;我是锋哥。今天分享关于【kafka 的高可用机制是什么&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; kafka 的高可用机制是什么&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Apache Kafka 是一个分布式消息系统&am…

Peach-9B-8k-Roleplay模型部署指南

一、模型介绍 Peach-9B-8k-Roleplay 是一种聊天大型语言模型&#xff0c;它是通过我们的数据合成方法创建的超过 100K 的对话中微调 01-ai/Yi-1.5-9B 模型而获得的。 也许是 34B 以下参数最好的 LLM。 二、部署过程 1、更新环境 apt update2、安装Miniconda wget https://…