揭秘HTTP协议:深入了解互联网通信的核心!

文章目录

  • HTTP
    • HTTP的消息结构
    • HTTP 常用请求方法
    • HTTP 状态码

HTTP

HTTP 是超文本传输协议,HTTP是缩写,全称是 HyperText Transfer Protocol

超文本指的是 HTML、css、JavaScript和图片等,HTTP的出现就是为方便接收和发布超HTML页面,经过不断的发展,也可以用于发布接收一些音频、文件等。

HTTP 协议是用于客户端和服务端之间的通信,除此之外还有 TCP/IP 协议族在内的众多协议,请求文本资源的一方,我们称之为客户端(client),接收请求并提供相应的一方称为服务端(Server)

有时候,客户端和服务端身份是可以互换的,单就一条通信线路来讲,可以确定的是,由HTTP协议就可以区分谁是客户端谁是服务端

HTTP 的特点:

  • 支持客户端、服务端模式,简单快速,http 允许任意传输类型的数据对象,无连接,限制每次连接处理一个请求,无状态,指明协议对事物处理没有标记的能力。
  • 灵活:允许任何数据对象,音频、视频、图片、文件等…
  • 无状态:任何两个请求之间没有必然的联系
  • 无连接:每次服务器在处理完请求后,就断开连接了,再请求就是新的连接,采用这种方式节省传输时间

HTTP1.0版的主要缺点

每个TCP 连接智能发送一个请求,发送数据完毕后,连接就关闭了,HTTP 是一种不保存状态,无状态协议,协议对于发送过来的请求或是响应都不做持久化处理

HTTP1.1虽然是无状态协议,但是为了实现期望的保存状态功能,于是引入了 Cookie技术,有了 Cookie,HTTP 协议通信,就可以管理状态了。

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

TCP 连接的新建成本很高,因为客户端需要和服务端 三次握手

交流端简单流程:客户端发起连接,客户端发起请求,服务端响应请求,服务端关闭链接

HTTP的消息结构

请求消息的结构:

一个请求消息是由 请求行,请求头字段,一个空行和消息主体 构成

消息主体是响应消息的承载数据

客户端:发送请求

GET/HTTP/1.1
Host: xiangi.love

服务器:发送响应

HTTP/1.1 200 OK
Date: Tue, 10 Jul ...
Content.Length: 362
Content.Type: text/html
<html>
...

在这里插入图片描述

Request Method:请求方法
Request URL:请求URL 的路径
Status Code 为状态码
Remote Address:地址

HTTP 是基于 TCP/IP 协议的应用层协议,不涉及数据包传输,规定了客户端和服务端之间的通讯方式,默认使用80端口

HTTP 发送请求例子:

在这里插入图片描述

服务器回应消息格式:

在这里插入图片描述

响应头:

Server 为服务器的名称,Location 为通知客户端新的资源位置,Content-Type 为数据类型,

# Content-Type 字段类型
text/plain
text/html
text/css
image/jpeg
image/png
image/svg+xml
audio/mp4
video/mp4
application/javascript
application/pdf
application/zip
application/atom+xml

HTTP 常用请求方法

常见的是 GET、POST 除此之外还有…

1.GET为获取资源数据
get方法用于请求指定的页面信息,并返回请求消息的主体

2.POST为提交资源数据
post方法用于向指定的资源提交数据

3.PUT为更新资源数据
4.DELETE为删除资源数据
5.HEAD为读取资源的元数据
6.OPTIONS为读取资源多支持的所有请求方法
7.TRACE为回显服务器收到额请求
8.CONNECT为保留将来使用

HTTP 1.0 只有 GET、POST、HEAD 三种请求方式,其他的都是 1.1 新增的 其中包括(OPTOPNS、PUT、DELETE、TARCE、CONNECT)

HTTP 状态码

200 成功!

500 出bug了

404 没有找到资源

302 临时跳转,非永久性,以闪电五连鞭之势就完成了跳转

301 永久性重定向,

在这里插入图片描述

HTTP/2 版本主要增加以下几点:

  • 是二进制协议,不再是纯文本。
  • 支持一个 TCP 连接发起多请求,移除了 pipeline。
  • 利用 HPACK 压缩头部,减少数据传输量。
  • 允许服务端主动推送数据。

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

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

相关文章

多模态大模型

一、图文匹配 二、Stable-Diffusion(稳定扩散) 图片生成器 Stable-Diffusion(稳定扩散)组成模块: CrossAttention模块:将文本的语义信息与图像的语义信息进行Attention机制&#xff0c;增强输入文本Prompt对生成图片的控制。SelfAttention模块:SelfAttention模块的整体结构与C…

ES分词器

Analysis&#xff1a;文本分析是把全文本转换一系列单词的过程&#xff0c;也叫分词。Analysis是通过Analyzer(分词器)来实现的。 1.Analyzer组成 注意&#xff1a;在ES中默认使用标准分词器&#xff1a;StandardAnalyzer。特点是&#xff1a;中文是单字分词&#xff0c;英文是…

社区嵌入式服务设施建设为社区居家养老服务供给增加赋能

近年来&#xff0c;沈阳市浑南区委、区政府牢记在辽宁考察时的重要指示精神&#xff0c;认真践行以人民为中心的发展思想&#xff0c;聚集“一老一小”民生关切&#xff0c;统筹推进以社区为骨干结点的养老服务探索实践。围绕“品质养老”民生服务理念&#xff0c;针对社区老年…

验证端口连通性的工具 telent nc

验证端口连通性的工具 telent nc 1、怎么验证端口连通性的工具2、telnet3、nc 1、怎么验证端口连通性的工具 telent nc这2个工具都可以验证端口连通性 2、telnet 命令格式 默认是验证tcp端口连通性 telnet ip port如果需要验证udp端口连通性 需要加上 -u telnet -u ip por…

经典算法-模拟退火算法求解旅行商问题TSP

经典算法-模拟退火算法求解旅行商问题TSP 旅行商问题&#xff08;Traveling Salesman Problem, TSP&#xff09;是组合优化中的经典问题。简单地说&#xff0c;一个旅行商需要访问N个城市&#xff0c;并返回到出发城市&#xff0c;问题是找到最短的可能路线&#xff0c;使得每…

1045 - Access denied for user ‘root @223.98.184.126‘ (using password: YES)

Mysql 1045错误 1 知识小课堂1.1 Mysql 1045错误1.2 mysql 常见的错误代码 2 问题呈现3 问题解决3.1 开始前的准备3.1.1 防火墙开端口3.1.2 宝塔管理控制 3.2 问题解决步骤 Navicat 连接数据库的时候报错&#xff0c;本文就是解决此问题。 1 知识小课堂 1.1 Mysql 1045错误 …

sectigo通配符dv证书400元买一年送1月实际签发13个月

Sectigo就是众多颁发数字证书的CA认证机构之一&#xff0c;旗下的DV通配符SSL证书作为一种加密通信工具&#xff0c;广泛应用于保护网站数据的安全。其中&#xff0c;SectigoDV通配符SSL证书是一种受欢迎的产品&#xff0c;它不仅能够提供强大的加密功能&#xff0c;还可以提高…

OpenGl L6坐标系统

一.标准化设备坐标 我们在L5谈到了对顶点着色器中的点进行变换&#xff0c;而变换的范围必须在 -1.0到1.0 之间&#xff0c;否者将不可见。只有将所有的点转换为标准化设备坐标后&#xff0c;才能全部传入光栅器&#xff0c;再转换为屏幕上的像素。 将坐标变换为标准化设备坐标…

【C语言小游戏】贪吃蛇

文章目录 1.引言2.运行图2.涉及知识3 Windows API3.1 控制台3.2 控制台屏幕坐标3.3 操作句柄3.4 控制台屏幕光标3.5 监视按键 4. 设计说明5. 完整代码 1.引言 使⽤C语⾔在Windows环境的控制台中模拟实现经典⼩游戏贪吃蛇 实现基本的功能&#xff1a; 贪吃蛇地图绘制蛇吃⻝物的…

基于SpringBoot的洗衣店管理系统

基于SpringBoot的洗衣店管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 登录界面 可视化展示 用户界面 管理员界面 摘要 洗衣店管理系统基于Spring Boot框…

LeetCode 38 外观数列

题目描述 外观数列 给定一个正整数 n &#xff0c;输出外观数列的第 n 项。 「外观数列」是一个整数序列&#xff0c;从数字 1 开始&#xff0c;序列中的每一项都是对前一项的描述。 你可以将其视作是由递归公式定义的数字字符串序列&#xff1a; countAndSay(1) "1…

09Bean的生命周期/作用域不同管理方式不同/自己new的对象纳入Spring容器管理

Spring其实就是一个管理Bean对象的工厂。它负责对象的创建&#xff0c;对象的销毁等。 所谓的生命周期就是&#xff1a;对象从创建开始到最终销毁的整个过程。 Bean的生命周期之5步 ● 第一步&#xff1a;实例化Bean(无参构造方法执行) ● 第二步&#xff1a;Bean属性赋值(注…

Swin Transformer 学习笔记(附代码)

论文地址&#xff1a;https://arxiv.org/pdf/2103.14030.pdf 代码地址&#xff1a; GitHub - microsoft/Swin-Transformer: This is an official implementation for "Swin Transformer: Hierarchical Vision Transformer using Shifted Windows". 1.是什么&#x…

Unity——VContainer的依赖注入

一、IOC控制反转和DI依赖倒置 1、IOC框架核心原理是依赖倒置原则 C#设计模式的六大原则 使用这种思想方式&#xff0c;可以让我们无需关心对象的生成方式&#xff0c;只需要告诉容器我需要的对象即可&#xff0c;而告诉容器我需要对象的方式就叫做DI&#xff08;依赖注入&…

SqlAlchemy使用教程(一) 原理与环境搭建

一、SqlAlchemy 原理及环境搭建 SqlAlchemy是1个支持连接各种不同数据库的Python库&#xff0c;提供DBAPI与ORM&#xff08;object relation mapper&#xff09;两种方式使用数据库。 DBAPI方式&#xff0c;即使用SQL方式访问数据库 ORM, 对象关系模型&#xff0c;是用 Python…

js 实现拖动按钮添加布局

效果&#xff1a; h布局生成左右布局&#xff0c; v布局生成上下布局 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, ini…

Python笔记08-面向对象

文章目录 类和对象构造方法内置方法封装继承类型注解多态 类只是一种程序内的“设计图纸”&#xff0c;需要基于图纸生产实体&#xff08;对象&#xff09;&#xff0c;才能正常工作 这种套路&#xff0c;称之为&#xff1a;面向对象编程 类和对象 定义类的语法如下&#xff…

vue v-for循环拖拽排序,实现数组选中的数据拖拽后对应的子数据也进行重新排序

如下图所有&#xff0c;有个需求更新&#xff0c; 实现拖拽。 1&#xff0c;当新增了测点类型的时候每个对应的回路子数据都会新增对应的测点类型。 2&#xff0c;当拖动测点类型结束的时候对应的回路里面的内容也会跟着测点类型的排序自动排序 其实很简单&#xff0c;只要会了…

el-tree多个树进行节点同步联动(完整版)

2024.1.11今天我学习了如何对多个el-tree树进行相同节点的联动效果&#xff0c;如图&#xff1a; 这边有两棵树&#xff0c;我们发现第一个树和第二个树之间会有重复的指标&#xff0c;当我们选中第一个树的指标&#xff0c;我们希望第二个树如果也有重复的指标也能进行勾选上&…

鸿蒙实战基础(ArkTS)-窗口管理

基于窗口能力&#xff0c;实现验证码登录的场景&#xff0c;主要完成以下功能&#xff1a; 登录页面主窗口实现沉浸式。输入用户名和密码后&#xff0c;拉起验证码校验子窗口。验证码校验成功后&#xff0c;主窗口跳转到应用首页。 登录界面实现沉浸式 完成登录界面布局的编…