HTTP是什么,不是什么?
HTTP是什么? 不是什么?
HTTP: 超文本传输协议,也就是HyperText Transfer Protocol.这是从字面上的理解,如果深一步的理解呢? HTTP又是什么呢?
HTTP是什么
HTTP是超文本传输协议,分解为三个部分,就是: "超文本" "传输" "协议". 从后向前解析.
协议
协议都知道,不是一个人的事,简单的来说,协议是需要两个或多个参与者.并且会对参与者进行一种行为约定和规范.
所以说: HTTP是一个用在计算机世界里的协议,使用计算机能够理解的语言确立一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式
传输
传输其实很好理解,就是从A到B(A <===> B). 注意了,下面是重点.
- HTTP协议是一个双向协议, 也就是说在A和B之间双向流动.通常发起传输动作的A叫做请求方,接到传输的B叫做应答方或响应方.
- 数据输在A和B之间传输,但是没有限制只有A和B两个角色,也就是允许"中转"或"接力". 什么意思呢? 也就是说"A <===> X <===> Y <===> B",可以存在任意多个中间人.
所以说HTTP是一个在计算机世界里专门用来在两点之间传输数据的约定和规范.
超文本
所谓的超文本,其实就是"超越了普通文本的文本",早起的互联网,"文本"就是简单的字符文字,现在,它是文字、图片、音频和视频等的混合体,最关键的是含有"超链接",可以实现跳跃功能,形成复杂的网状等结构. 最熟悉的就是HTML,本身是纯文本文件,但是内部的标签定义图片、视频等链接,结果浏览器的解析,呈现的就是一个含有多种试听信息的页面.
分开理解了,那结合起来呢?
HTTP是一个在计算机世界里专门在两点之间传输文字、图片、视频、音频等超文本数据的约定和规范
HTTP不是什么
首先HTTP是一种计算机通信的规范,那么也就是说它不存在单独的实体,但是它有真实存在,而且是动态的,是发生在网络连接、传输超文本数据时的一个"动态过程".
HTTP不是互联网,互联网是遍布全球的许多网络相互连接而形成的一个巨大的国际网络,上面有各种资源,对应各种协议,例如超文本资源使用HTTP,普通文件使用FTP,电子邮件使用SMTP和POP3等. 虽然不是互联网,但是却是构建互联网的一块重要拼图.
HTTP不是编程语言.编程语言是人与计算机交互的语言,但是HTTP却是计算机与计算机沟通交流的语言.这点很重要.HTTP是无法用来编程的,但是可以使用编程语言去实现HTTP,告诉极端及如何用HTTP于外界通信.
HTTP不是HTML,HTML是超文本的载体, HTTP传输最多的就是HTML了.但是论到数据量,HTML就不算多了,因为HTML相对于视频音频来说太小了.
HTTP不是孤立的协议.在互联网的世界里,HTTP通常是跑在TCP/IP协议栈上的(为什么加个通常呢,就是因为HTTP/3是跑在UDP上的),依靠IP协议实现寻址和路由、TCP协议实现可靠数据传输、DNS协议实现域名查找、SSL/TLS协议实现安全通信.此外还有一些协议依赖于HTTP,例如WebSocket、HTTPDNS等.这些协议相互交织,构成一个协议网,而HTTP则处于中心地位.
- HTTP是一种用于在计算机世界里的协议,确立了一种计算机之间交流通信的规范以及相关的各种控制和错误处理方式.
- HTTP专门用来在两点之间传输数据,不能用于广播、寻址和路由.
- HTTP传输的是文字、图片、音频、视频等超文本数据.
- HTTP是构建互联网的重要基础技术,没有实体,依赖于其他的技术来实现,同是也被其他的技术依赖.
综合起来,可以HTTP定义为"与HTTP协议相关的所有应用层技术的综合".
极客时间学习笔记........
随机推荐
- 16-numpy笔记-莫烦pandas-4
代码 import pandas as pd import numpy as np dates = pd.date_range('20130101', periods=6) df=pd.DataFra ...
- python27期day02:while循环、break、格式化、运算符、编码初始、作业题。
1.while循环:不断的重复着某件事就是循环 2.while循环图解: 3.break:终止当前循环. 4.continue就是跳出本次循环.继续下次循环. 下方代码都不会执行. 改变循环条件来终止 ...
- JDOJ 1770 埃及分数
JDOJ 1770: 埃及分数 https://neooj.com/oldoj/problem.php?id=1770 Description 分子均为1的分数叫做埃及分数,因为古代埃及人在进行分数运 ...
- js replace方法第二个参数,远不止你想的那么强大
js replace() 方法,想必大家都不陌生. 定义和用法: replace()方法用于在字符串中用一些字符替换另一些字符,或者替换一个与正则表达式匹配的子串. stringObject.repl ...
- Linux文件系统与日志
1.inode 包含文件的元信息(1)inode 内容:文件的字节数.拥有者的 UID.GID.文件的读写执行权限.时间戳等,但不包含文件名.文件名是储存在目录的目录项中.(2)查看文件的 inode ...
- shell之startup
#!/bin/sh # # # # PROJECT=$ APPWORK_DIR=~/apps/$PROJECT LOGPATH=~/logs/$ LOGFILE=~/logs/$PROJECT/${P ...
- 运维工程师打怪升级进阶之路 V2.0
在此之前,发布过两个版本: 运维工程师打怪升级之路 V1.0 版本发布 运维工程师打怪升级必经之路 V1.0.1 很多读者伙伴们反应总结的很系统.很全面,无论是0基础初学者,还是有基础的入门者,或者是 ...
- 各版本linux推荐的软件源
x64 Ubuntu 18.4 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe mul ...
- 推荐一款运动步行App爱步行
推荐一款运动步行App爱步行 1 介绍 爱步行,是一款倡导健步运动.绿色生活.提升散步乐趣的APP,让大众在享受运动的同时,让用户的每一步都能产生价值.爱步行以步数为基础,用户在每天的行走过程中,可以 ...
- 微信小程序常用样式汇总
本文系转载: 原文作者:chenzheng8975 原文地址:https://www.cnblogs.com/chenzheng8975/p/9605186.html 微信小程序常用样式汇总 小程序特 ...