《深入浅出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接口。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UE5之5.4 第一人称示例代码阅读1 FirstPersonProjectile

既然如此,这几个文件都看看 先看看FirstPersonProjectile头文件 定义了几个函数 然后是两个component 这个projectilemovement应该是控制物理运动的 看看CPP文件 sphere那个就创建了一个subobject,初始化了一下,然后这里 CollisionComp-&g…

Maven 项目构建打包,如何引入本地 Jar 包?

上一篇讲到 Maven 离线仓库的使用,反响不错很多人收藏,这一篇还是继续聊 Maven 。假如你发现某开源项目有个 bug 影响到自己的系统,但官方还没修复,自己定位到了本地修改打了包先应急用,那么如何在其他项目上使用该包&…

985研一,转嵌入式好还是后端开发好?

有个老铁问,985研一,转嵌入式好还是后端开发好? 我认为,这学历,两个随便挑,我说的,从趋势来看,更建议嵌入式,走供应链上游,芯片原厂、新能源车企、军工或者搞…

Python画图|极坐标下的柱状图输出

【1】引言 前序学习了极坐标下的散点图输出,可通过下述链接直达: 西猫雷婶-CSDN博客 受此启发,我们继续自主探索极坐标下的柱状图输出。 【2】代码探索 其实柱状图和散点图画图的主要区别,可以理解为调用函数不同。 柱状图调…

Golang | Leetcode Golang题解之第515题在每个树行中找最大值

题目: 题解: func largestValues(root *TreeNode) (ans []int) {if root nil {return}q : []*TreeNode{root}for len(q) > 0 {maxVal : math.MinInt32tmp : qq nilfor _, node : range tmp {maxVal max(maxVal, node.Val)if node.Left ! nil {q …

stm32单片机个人学习笔记12(DMA直接存储器存取)

前言 本篇文章属于stm32单片机(以下简称单片机)的学习笔记,来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记,只能做参考,细节方面建议观看视频,肯定受益匪浅。 STM32入门教程-2023版 细…

若依学习 后端传过来的数据在控制台打印为空

导言: 在做若依二次开发时遇到个没见过的bug,用了一些时间排,发现有自己没学过的东西。所以记录一下。后端用的是c#的asp.net core 问题描述: 后端穿过来的有数据的参数(数组)roleIds在控制台打印为空 后端字段定义: 后端数据: 前…

【热门主题】000010 深入 Vue.js 组件开发

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【热…

初见Linux:权限篇

一.权限的定义: 什么是权限?所谓权限在现实中就是权力限制,是对于人,不同人所扮演的角色有着不同的权限。那么在Linux中也存在权限。权限角色事物属性。那么对于一件事情能否去执行以及完成都需要权限。 二.Linux中的用户 2.1:r…

【SpringMVC】web服务器,访问失败的问题,SpringMVC,建立连接,请求

【web服务器】 web服务器可以对http协议进行封装,程序员不需要直接对http协议进行操作(不需要去写复杂的网络编程代码),让web开发更加便捷,所以它也有「WWW服务器」的称呼 常见的web服务器:Tomcat,Jboss&…

华为配置 之 STP

目录 简介: STP: RSTP: 如何改变根网桥: (1)改变优先级: (2)改变root: 各端口的状态: 总结: 简介: STP(Spanning Tree Protoco…

深度学习:Matplotlib篇

一、简介 1.1 什么是 Matplotlib? Matplotlib 是一个广泛使用的 2D 绘图库,它可以用来在 Python 中创建各种静态、动态和交互式的图表。无论是科学计算、数据可视化,还是深度学习模型的训练与评估,Matplotlib 都能提供强大的图形…

虚拟现实新纪元:VR/AR技术将如何改变娱乐与教育

内容概要 在当今科技飞速发展的时代,虚拟现实(VR)和增强现实(AR)技术不仅让我们的娱乐体验如虎添翼,更为教育变革注入了新活力。这些技术的飞跃进展,将原本平淡无奇的场景转变为令人沉醉的沉浸…

深入浅出 C++ STL:解锁高效编程的秘密武器

引言 C 标准模板库(STL)是现代 C 的核心部分之一,为开发者提供了丰富的预定义数据结构和算法,极大地提升了编程效率和代码的可读性。理解和掌握 STL 对于 C 开发者来说至关重要。以下是对 STL 的详细介绍,涵盖其基础知…

面向对象编程中类与类之间的关系(一)

目录 1.引言 2."有一个"关系 3."是一个"关系(继承) 4.“有一个”与“是一个”的区别 5.not-a关系 6.层次结构 7.多重继承 8.混入类 1.引言 作为程序员,必然会遇到这样的情况:不同的类具有共同的特征,至少看起来彼…

JavaWeb——Web入门(1/9)-Spring Boot Web介绍(Spring家族,Spring Boot)

目录 Spring家族 Spring Boot 在我们了解完了 Maven 这款项目构建工具的基本使用之后,接下来我们正式的进入到 Web 后端开发的学习。 第一篇章要了解的是 Spring Boot Web 的入门。 在正式开始之前,我们先需要介绍一下什么是 Spring 以及什么是 Spri…

H3C Hybrid 实验

实验拓扑 图 1-1 注:如无特别说明,描述中的 R1 或 SW1 对应拓扑中设备名称末尾数字为 1 的设备,R2 或 SW2 对应拓扑中设备名称末尾数字为 2 的设备,以此类推;另外,同一网段中,IP 地址的主机位为…

【NOI】C++函数入门二(自定义函数)

文章目录 前言一、概念1.导入1.1 首先什么是函数呢? 2.函数分类3.为什么要定义函数呢?4.函数结构5.函数使用注意事项 二、例题讲解问题:1137 - 纯粹素数问题:1258 - 求一个三位数问题:1140 - 亲密数对问题:…

Flutter仿京东商城APP实战 用户中心基础布局

用户中心界面 pages/tabs/user/user.dart import package:flutter/material.dart; import package:jdshop/utils/zdp_screen.dart; import package:provider/provider.dart;import ../../../store/counter_store.dart;class UserPage extends StatefulWidget {const UserPage…

如何在Node.js中执行解压缩文件操作

一、解压文件 1.安装依赖: 安装adm-zip依赖包:npm install adm-zip --save 安装iconv-lite依赖包:npm install iconv-lite --save 解压前的file文件夹结构: update-1.0.2.zip压缩包内容: 2.在depresssFile.js文件&…