HTTP超文本传输协议

HTTP协议

  • 概述
  • 名词
  • 媒体类型
  • URL语法
  • HTTP报文组成
  • HTTP报文语法
  • HTTP请求方法
  • HTTP状态码

概述

HTTP(Hypertext transfer protocol)超文本传输协议是Web浏览器,服务器和相关的web应用程序相互通信的基石。HTTP使用的是可靠数据传输协议确保数据在传输过程中不会被损坏或产生混乱。HTTP是一个基于TCP/IP通信协议来传递数据,同时也是一个属于应用层的面向对象的协议。
HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即Web服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。TCP/IP协议是互联网上最流行的应用,虽然HTTP协议并没有规定必须使用TCP/IP协议,只要求其下层协议提供可靠的传输。但大多数HTTP协议仍然使用TCP协议作为其传输层。

名词

  • HTTP:(Hypertext transfer protocol)超文本传输协议,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。
  • URI:(Uniform Resource Identifier)统一资源标识符,用于定位web上的资源。该种标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作。
  • URL:(Uniform Resource Locator)统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。URL是URI的子集。

媒体类型

因特网上有数千种不同的数据类型,HTTP给每种要通过Web传输的对象都打上名为MIME类型(MIME type)的数据格式标签。MIME(Multipurpose Intnet Mail Extension,多用途因特网邮件扩展)。
MIME类型是一种文本标记,表示一种主要对象类型和一个特定的子类型,中间由一条斜杠来分隔:

  • HTML格式的文本由 text/html 类型标记。
  • ASCII普通文本文档由 text/plain 类型标记。
  • JPEG版本的图片为image/jpeg类型。
  • GIF格式的图片为image/gif类型。
  • Apple的QuickTime电影为video/quicktime类型。
  • 微软PowerPoint演示文件为applicatoin/vnd.ms-powerpoint类型。

URL语法

URL提供了一种定位因特网上任意资源的手段,但这些资源可以通过不同的方案(如:HTTP,FTP,SMTP)来访问,因此,URL语法会随方案的不同而有所不同。大多数URL方案都建立在这个由9部分构成的通用格式上:

<scheme:>//<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

常见协议格式(scheme)

  • http: 超文本传输协议,除了没有用户名和密码之外,与通用URL格式相符。默认端口80。
    基本格式:
    http://<host>:<port>/<path>?<query>#<frag>
    示例:
    http://www.webserver.com/index.html
    http://www.webserver.com:80/index.html

  • https:使用了网景的SSL,为HTTP连接提供端到端的加密机制。其他与HTTP语法相同。默认端口443。
    基本格式:
    https://<host>:<port>/<path>?<query>#<frag>
    示例:
    https://www.webserver.com/index.html

  • mailto:访问的是电子邮件地址
    基本格式:
    mailto:<RFC-822-addr-spec>
    示例:
    mailto:123456789@qq.com

  • ftp:文件传输协议可以用来从FTP服务器上传或下载文件,并获取FTP服务器上的文件目录内容列表。
    基本格式:
    ftp://<user>:<password>@<host>:<port>/<path>;<params>
    示例:
    ftp://anonymous:123456@localhost/files/mp3

  • rtsp,rtspu:RTSP(Real Time Streaming Protocol)实时流传输协议,可以传输实时音视频流媒体资源。rtspu中的u表示它是使用UDP协议来获取资源的。
    基本格式
    rtsp://<user>:<password>@<host>:<port>/<path>
    rtspu://<user>:<password>@<host>:<port>/<path>

  • file:访问指定主机上可直接访问的文件。各字段符合通用格式。若省略了主机名,就默认为本地主机。
    基本格式:
    file://<host>/<path>
    示例:
    file://docs/python/python.pdf

  • news:访问一些特定文章或新闻组。
    基本格式:
    news:<newsgroup>
    news:<news-article-d>

  • telnet: 用于访问交互式业务。表示可以通过telnet协议访问的交互式应用程序。
    基本格式:
    telnet://<user>:<password>@<host>:<port>/

HTTP报文组成

HTTP报文是简单的格式化数据。每条报文都包含一条来自客户端的请求,或者一条来自服务器的响应。他们都由三个部分组成:

  1. 报文描述起始行(start line);
  2. 包含属性的首部(header)块;
  3. 包含数据的主题(body)部分;
    起始行和首部就是由行分隔的ASCII文本。报文主题是一个可选数据块,可以包含文本或二进制数据,也可以为空。

HTTP报文语法

说有的HTTP报文都可以分为两类:

  1. 请求报文(request message),请求报文会向服务器请求一个动作。
  2. 响应报文(response message),响应报文会将请求结果返回给客户端;
  • 请求报文格式:
    <method> <request-URL> <version>
    <headers>
    ------注意:这里有空行-----
    <entity-body>

  • 响应报文格式:
    <version> <status> <reason-phrase>
    <headers>
    ------注意:这里有空行-----
    <entity-body>

HTTP请求方法

根据HTTP标准,HTTP请求可以使用多种请求方法:

  • HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
  • HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

HTTP状态码

HTTP状态码的英文为HTTP Status Code
常见的HTTP状态码:

  • 200 - 请求成功
  • 301 - 网页等资源被永久转移到其它URL
  • 302 - 网页等资源被临时转移到其它URL
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误

HTTP状态码分类:

状态码分类描述
1XX信息,服务器收到请求,需要请求者继续执行操作
2XX成功,操作被成功接收并处理
3XX重定向,需要进一步的操作以完成请求
4XX客户端错误,请求包含语法错误或无法完成请求
5XX服务器错误,服务器在处理请求的过程中发生了错误

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

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

相关文章

机器学习算法---回归

1. 线性回归&#xff08;Linear Regression&#xff09; 原理&#xff1a; 通过拟合一个线性方程来预测连续响应变量。线性回归假设特征和响应变量之间存在线性关系&#xff0c;并通过最小化误差的平方和来优化模型。优点&#xff1a; 简单、直观&#xff0c;易于理解和实现。…

C#学习相关系列之数据类型类的定义(一)

一、类的定义 C#中类是一种引用类型&#xff0c;用于表示具有状态和行为的对象。类可以包含字段、属性、方法、事件等成员。 public class MyClass { // 类的成员定义 } 常用的关键字如下&#xff1a; 1、public 是一个访问修饰符&#xff0c;用于指定类成员的访问级…

【日常笔记】notepad++ 正则表达式基本用法

一、场景 二、正则表达式--语法 2.1、学习基本的匹配字符&#xff1a; 2.2、学习特殊字符和量词&#xff1a; 2.3、学习转义字符 2.4、学习分组和捕获 2.5、区分大小写 和 匹配整个单词 2.6、引用分组 三、实战 ▶ 希望把课程目录中 -- 前面的都去掉 一、场景 希望把…

Jrebel 在 Idea 2023.3中无法以 debug 的模式启动问题

Jrebel 在 Idea 2023.3中无法以 debug 的模式启动问题 Idea 在升级了2023.3以后&#xff0c;Jrebel 无法以 debug 的模式启动&#xff0c;找了半天&#xff0c;最后在插件主页的评论区找到了解决方案 特此记录一下

Dockerfile:创建镜像,创建自定义的镜像。

Docker的创建镜像的方式&#xff1a; 基于已有镜像进行创建。 根据官方提供的镜像源&#xff0c;创建镜像&#xff0c;然后拉起容器。是一个白板&#xff0c;只能提供基础的功能&#xff0c;扩展性的功能还是需要自己定义&#xff08;进入容器进行操作&#xff09; 基于模板进…

如何使用Composer安装第三方库?

Composer 是 PHP 的一个依赖管理工具&#xff0c;用于管理项目中的依赖库&#xff08;包&#xff09;。以下是使用 Composer 安装第三方库的一般步骤&#xff1a; 步骤&#xff1a; 安装 Composer&#xff1a; 如果尚未安装 Composer&#xff0c;请按照 Composer 官方网站 上的…

SpringBoot 基础概念:SpringApplication#getSpringFactoriesInstances

SpringBoot 基础概念&#xff1a;SpringApplication#getSpringFactoriesInstances SpringApplication#getSpringFactoriesInstances SpringApplication#getSpringFactoriesInstances private <T> Collection<T> getSpringFactoriesInstances(Class<T> type,…

在 Spring Boot 中发送邮件简单实现

Spring Boot 对于发送邮件这种常用功能也提供了开箱即用的 Starter&#xff1a;spring-boot-starter-mail。 通过这个 starter&#xff0c;只需要简单的几行配置就可以在 Spring Boot 中实现邮件发送&#xff0c;可用于发送验证码、账户激活等等业务场景。 本文将通过实际的案…

【AI美图】第03期效果图,AI人工智能全自动绘画,二次元美图欣赏

带来一组二次元人工智能自动绘图 对比分析&#xff1a; 标题手画二次元需要技巧&#xff1a; 二次元高清图片的绘制技巧主要包括以下几点&#xff1a; 线条的运用&#xff1a;在二次元风格的绘画中&#xff0c;线条的运用非常重要。要绘制出流畅、细腻的线条&#xff0c;需…

用于自动驾驶的基于深度学习的图像 3D 物体检测:综述

论文地址&#xff1a;https://ieeexplore.ieee.org/abstract/document/10017184/ 背景 准确、鲁棒的感知系统是理解自动驾驶和机器人驾驶环境的关键。自动驾驶需要目标的 3D 信息&#xff0c;包括目标的位置和姿态&#xff0c;以清楚地了解驾驶环境。 摄像头传感器因其颜色和…

初识JVM底层知识,一文读懂JVM知识文集。

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

nginx反向代理实践指南:访问Tomcat

目录 前言1 实现的效果2 访问流程分析3 安装tomcat并测试4 配置4.1 在Windows系统的hosts文件进行域名和IP对应关系的配置4.2 在NGINX进行请求转发的配置&#xff08;反向代理配置&#xff09; 5 最终测试结论 前言 从Windows系统访问Tomcat Web应用程序&#xff0c;设置和配置…

VUE-脚手架搭建

文章目录 一、概述二、前提准备1. 安装 node-js2. npm 镜像设置3. 安装 vs-code 三、脚手架搭建1. Vue-2 搭建1. Vue-3 搭建 一、概述 官网&#xff1a;http://cn.vuejs.org/ vue 有两个大版本&#xff0c;分别是 vue-2 和 vue-3&#xff0c;目前新项目的话用 vue-3 的会比较多…

【Hadoop-OBS-Hive】利用华为云存储对象 OBS 作为两个集群的中间栈 load 文件到 Hive

【Hadoop-OBS-Hive】利用华为云存储对象 OBS 作为两个集群的中间栈 load 文件到 Hive 1&#xff09;压缩文件2&#xff09;上传文件到 OBS 存储对象3&#xff09;crontab 定时压缩上传4&#xff09;从 obs 上拉取下来文件后解压缩5&#xff09;判断对应文件是否存在6&#xff0…

Elasticsearch 进阶(索引、类型、字段、分片、副本、集群等详细说明)-06

笔记来源&#xff1a;Elasticsearch Elasticsearch进阶 进阶-核心概念 索引Index 一个索引就是一个拥有几分相似特征的文档的集合。比如说&#xff0c;你可以有一个客户数据的索引&#xff0c;另一个产品目录的索引&#xff0c;还有一个订单数据的索引。一个索引由一个名字…

RT-DETR 图片目标计数 | 特定目标进行计数

全类别计数特定类别计数如何使用 RT-DETR 进行对象计数 有很多同学留言说想学 RT-DETR 目标计数。那么今天这篇博客,我将教大家如何使用 RT-DETR 进行对象计数。RT-DETR 是一种非常强大的对象检测模型,它可以识别图像中的各种对象。我们将学习如何利用这个模型对特定对象进行…

迅为RK3568开发板使用OpenCV处理图像-ROI区域-位置提取ROI

在图像处理过程中&#xff0c;我们可能会对图像的某一个特定区域感兴趣&#xff0c;该区域被称为感兴趣区域&#xff08;Region of Interest, ROI&#xff09;。在设定感兴趣区域 ROI 后&#xff0c;就可以对该区域进行整体操作。 位置提取 ROI 本小节代码在配套资料“iTOP-3…

C++ 学习系列 -- 模板 template

一 C 模板介绍&#xff1f; C 为什么引入模板&#xff1f; 我的理解是&#xff1a; C 引入模板的概念&#xff0c;是为了复用重复的代码&#xff0c;当某些代码除了操作的数据类型不同以外&#xff0c;其他逻辑全都相同&#xff0c;此时就适合采用模板的方式。 定义模板类或者…

黑豹程序员-axios+springmvc传递数组

问题 奇怪的现象&#xff0c;axios在往后台传递数组时&#xff0c;springmvc竟然接收不到 解决 尝试多次无果&#xff0c;突然看一篇文章写vue中的数组不是真正的数组需要强转转化JSON.stringify 将信将疑下测试了一把&#xff0c;还真的传递成功了。 不光要JSON.stringify…

牛客后端开发面试题3

阿里巴巴2021 1、通配符的含义 在字符串匹配时可以代替一定范围的字符。 2、死锁的基本知识 产生死锁的原因&#xff1a; 1.系统资源不足 2.进程运行推进方式不合理 3.分配资源不合理 &#xff08;把幼儿园老师比作操作系统&#xff0c;幼儿园里的玩具比作系统资源&#xff0c…