最近在复习关于HTTP的相关知识,后面会连续写一写相关的基础知识点,也当做是重新学习和巩固,万丈高楼平地起,加油!

什么是HTTP?
首先你听的最多的应该就是HTTP是一种超文本传输协议****(Hypertext Transfer Protocol), 这你
一定能说出来,但是这样还不够,假如你是大厂面试官,这不可能是他想要的最终结果,我们在面试的时候往往把自己知道的尽可能多的说出来,才有和面试官谈价钱的资本。那么什么是超文本传输协议?
超文本传输协议可以进行文字分割:超文本(Hypertext)传输(Transfer)、 协议 (Protocol)
它们之间的关系如下

什么是超文本

在互联网早期的时候,我们输入的信息只能保存在本地,无法和其他电脑进行交互。我们保存的信息通常都以文本即简单字符的形式存在,文本是一种能够被计算机解析的有意义的二进制数据包。而随着互联网的高速发展,两台电脑之间能够进行数据的传输后,人们不满足只能在两台电脑之间传输文字,还想要传输图片、音频、视频,甚至点击文字或图片能够进行超链接的跳转,那么文本的语义就被扩大了,这种语义扩大后的文本就被称为超文本(Hypertext)。

什么是传输

那么我们.上面说到,两台计算机之间会形成互联关系进行通信,我们存储的超文本会被解析成为二进制
数据包,由传输载体(例如同轴电缆,电话线,光缆)负责把二进制数据包由计算机终端传输到另一个
终端的过程(对终端的详细解释可以参考你说你懂互联网,那这些你知道么?这篇文章)称为传输(transfer)。
通常我们把传输数据包的一方称为请求方,把接到二进制数据包的一方称为应答方。请求方和应答方可以进行互换,请求方也可以作为应答方接受数据,应答方也可以作为请求方请们之间的关
系如下


如图所示,A和B是两个不同的端系统,它们之间可以作为信息交换的载体存在,刚开始的时候是A作为请求方请求与B交换信息,B作为响应的一方提供信息;随着时间的推移,B也可以作为请求请
求A交换信息,那么A也可以作为响应方响应B请求的信息。

什么是协议?

协议这个名词不仅局限于互联网范畴,也体现在日常生活中,比如情侣双方约定好在哪个地点吃饭,这个约定也是一种协议,比如你应聘成功了,企业会和你签订劳动合同,这种双方的雇也是- -种
协议。注意自己一个人对自己的约定不能成为协议,协议的前提条件必须是多人约定。

那么网络协议是什么呢?

网络协议就是网络中(包括互联网)传递、管理信息的一些规范。如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间的相互通信需要共同遵守- -定 的规则,这些规则就称为网络议。
没有网络协议的互联网是混乱的,就和人类社会一样,人不能想怎么样就怎么样,你的行为约束是受到法律的约束的;那么互联网中的端系统也不能自己想发什么发什么,也是需要受到通信协议约束的。

那么我们就可以总结一下,什么是HTTP?可以用下面这个经典的总结回答一下: HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范

应用层

应用层是网络应用程序和网络协议存放的分层,因特网的应用层包括许多协议,例如我们学web离不开的HTTP ,电子邮件传送协议SMTP、 端系统文件 上传协议FTP、 还有 为我们进行域名解析的DNS协议。应用层协议分布在多个端系统上,-个端系外-个端系统应用程序交换信息分组,我们把位于应用层的信息分组称为报文(message) 。

运输层.

因特网的运输层在应用程序断点之间传送应用程序报文,在这一层主要有两种传输协议TCP 和UDP,利用这两者中的任何一个都能够传输报文,不过这两种协议有巨大的不同。
TCP向它的应用程序提供了面向连接的服务,它能够控制并确报文是否到达,并提供了拥塞机制来控制网络传输,因此当网络拥塞时,会抑制其传输速率。UDP协议向它的应用程序提供了无连接服务。它不具备可靠性的特征,没有流量控制,也没有拥塞控
制。我们把运输层的分组称为报文段( segment)

网络层

因特网的网络层负责将称为数据报( datagram)的网络分层从一 台主机移动到另一台主机。网络层一
个非常重要的协议是IP协议,所有具有网络层的因特网组件都必须运行IP协议,IP协议是一-种网
际协议,除了IP协议外,网络层还包括- -些其他网际协议和路由选择协议,一般把网络层就称为IP
层,由此可知IP协议的重要性。

链路层

现在我们有应用程序通信的协议,有了给应用程序提供运输的协议,还有了用于约定发送位置的IP协
议,那么如何才能真正的发送数据呢?为了将分组从一一个节点(主机或路由器)运输到另-一个节点,网络层必须依靠链路层提供服务。链路层的例子包括以太网、WiFi和电缆接入的DOCSIS 协议,因为数据从源目的地传送通常需要经过几条链路,一个数据包可能被沿途不同的链路层协议处理,我们把链路层的分组称(frame)

五层网络协议的示意图如下|

OSI模型

我们上面讨论的计算网络协议模型不是唯一的 协议栈,ISO (国际标准化组织)提出来计算机网络应该按照7层来组织,那么7层网络协议栈与5层的区别在哪里?


从图中可以一眼看出,OSI 要比,上面的网络模型多了表示层和会话层,其他层基本-致。表示层主
要包括数据压缩和数据加密以及数据描述,数据描述使得应用程序不必担心计算机内部存储格式的问
题,而会话层提供了数据交换的定界和同步功能,包括建立检查点和恢复方案。

与HTTP有关的协议

在互联网中,任何协议都不会单独的完成信息交换,HTTP也一样。虽然HTTP属于应用层的协议,但是它仍然需要其他层次协议的配合完成信息的交换,那么在完成- -次HTTP请求和响应的过程中,需要哪些协议的配合呢? 一起来看一下

TCP/IP

TCP/IP 协议你一定听过,TCP/IP我们一般称之为协议簇,什么意思呢?就是TCP/IP协议簇中不仅仅只有TCP协议和IP协议,它是- -系列网络通信协议的统称。而其中最核心的两个协议就是TCP
IP协议,其他的还有UDP、ICMP、ARP等等,共同构成了一-个复杂但有层次的协议栈。TCP协议的全称TransmissionControl Protocol的缩写, 意思是传输控制协议,HTTP 使用TCP作为通信协议,这是因为TCP是一种可靠的协议,而可靠能保证数据不丢失。

IP协议的全称是Internet Protocol的缩写,它主要解决的是通信双方寻址的问题。IP协议使用IP地址来标识互联网, 上的每一台计算机,可以把IP地址想象成为你手机的电话号码,你要与他人通话必须先要知道他人的手机号码,计算机网络中信息交换必须先要知道对方的IP地址。(关于 TCP和IP更多的讨论我们会在后面详解)

DNS

你有没有想过为什么你可以通过键入www. google. com就能够取你想要的网站?我们上面说到,计算机网络中的每个端系统都有-个IP地址存在,而把IP地址转换为便于人类记忆的协议DNS协议。
DNS的全称是域名系统(Domain Name System, 缩写: DNS), 它作为将域名和 IP地址相互映射的
一个分布式数据库,能够使人更方便地访问互联网。

URI / URL

我们上面提到,你可以通过输入www. google . com地址来访问谷歌的官网,那么这个地址有什么规定
吗?我怎么输都可以? AAA.BBB.CCC是不是也行?当然不是的,你输入的地址格式必须要满足URI的规范。
URI的全称是(Uniform Resource ldentifier) ,中文名称是统一资源标识符,使用它就能够唯一地标记互联网上资源。
URL的全称是(Uniform Resource Locator),中文名称是统-资源定位符,也就是我们俗称的网址,它实际上是URI的一个子集。
URI不仅包括URL,还包括URN (统一资源名称) ,它们之间的关系如下

重点

HTTP请求响应过程
你是不是很好奇,当你在浏览器中输入网址后,到底发生了什么事情?你想要的内容是如何展现出来
的?让我们通过一个例子来探讨一-下,我们假设访问的URL地址为
http://www. someSchool . edu/ someDepartment/home . index,当我们输入网址并点击回车时,浏
览器内部会进行如下操作
●DNS服务器会首先进行域名的映射,找到访问www . someSchool. edu所在的地址,然后HTTP客
户端进程在80端口发起一个到服务器
www. someSchool.edu的TCP连接(80 端口是HTTP
的默认端口)。在客户和服务器进程中都会有一个套接字与其相连。
●HTTP客户端通过它的套接字向服务器发送一 个HTTP请求报文。该报文中包含了路径
someDepartment/home . index的资源,我们后面会详细讨论HTTP请求报文。
●HTTP服务器通过它的套接字接受该报文,进行请求的解析工作,并从其存储器(RAM或磁盘)中.检索出对象www.someSchool.edu/someDepartment/home.index,, 然后把检索出来的对象进行封装,封装到HTTP响应报文中,并通过套接字向客户进行发送。
●HTTP服务器随即通知TCP断开TCP连接,实际上是需要等到客户接受完响应报文后才会断开
TCP连接。
●HTTP客户端接受完响应报文后,TCP连接会关闭。HTTP客户端从响应中提取出报文中是一 个
HTML响应文件,并检查该HTML文件,然后循环检查报文中其他内部对象。
●检查完成后,HTTP客户端会把对应的资源通过显示器呈现给用户。

至此,键入网址再按下回车的全过程就结束了。上 述过程描述的是一种简单的请求-响应全过程,真实的请求-响应情况可能要比上面描述的过程复杂很多。

来源参考:《计算机网络》
《图解HTTP》

什么是HTTO协议?来看!相关推荐

  1. HTTO协议详细讲解

    HTTP协议 http协议的简介 HTTP,HyperText Transfer Protocol.超文本传输协议,是互联网上应用最为广泛的一种网络协议.基于TCP的协议,HTTP是一个客户端和服务器 ...

  2. 网络编程2_网络通讯协议, socket(tcp, udp)

    一. 网络通讯协议     互联网协议的功能: 定义计算机如何接入internet, 以及接入internet的计算机的通信标准     互联网协议按照功能的不同分为osi七层或tcp/ip五层    ...

  3. 基于 HTTP/2 的全新 APNs 协议

    基于 HTTP/2 的全新 APNs 协议 https://developer.apple.com/library/content/documentation/NetworkingInternet/C ...

  4. 《Linux高性能服务器编程》阅读笔记 之(二)IP 协议详解

    目录 IP服务的特点 IPv4 头部结构 介绍 使用 tcpdump 观察 IPv4 头部结构 IP 分片 介绍 使用 tcpdump 观察 IP 分片 IP路由 IP 模块工作流程 路由机制 IP转 ...

  5. java实现ip首部校验和算法,理解传输层中UDP协议首部校验和以及校验和计算方法的Java实现...

    UDP,全称User Datagram Protocol,用户数据报协议,是TCP/IP四层参考模型中传输层的一种面向报文的.无连接的.不能保证可靠的.无拥塞控制的协议.UDP协议因为传输效率高,常用 ...

  6. Ad hoc网络路由协议概述4——按需路由协议(2)AODV协议 (Ad-hoc on-demand distance vector algorithm protocol)

    目录 1 一点前言 2 路由发现 2.1 相关概念 2.2 AODV的路由发现过程 2.3 与DSDV协议的对比 3 路由表管理及维护 3.1 更新路由表的策略 4 AODV协议的特点 4.1 优点 ...

  7. TCP/IP 网络协议基础入门

    文章目录 1.TCP/IP简介 IP 地址 域名 MAC 地址 端口号 封装和分用 2.链路层介绍 控制帧的传输 差错控制 反馈重发 计时器 序号 流量控制 以太网 PPP(点对点协议) SLIP 与 ...

  8. NVMe协议详解(一)

    参考文档:NVME手册1.4a,下载网站. NVMe相关定义 queue pair 一对用来承载NVMe命令的队列对,由一个Submission Queue和一个Completion queue组成, ...

  9. 流媒体协议HLS解析

    参考资料:https://www.cnblogs.com/jimodetiantang/p/9133564.html https://cloud.tencent.com/developer/artic ...

  10. 最新USBPD3.1 快充协议

    最近发布了最新的PD3.1版本的协议:简单写一下几个点: 1.增加了EPR extended power rang 就是扩展功率范围,把原来的100W表示为SPR standard power ran ...

最新文章

  1. 【译】一行css代码搞定响应式布局
  2. docker 感性介绍
  3. 机器学习入门10 - 正则化:简单性(Regularization for Simplicity)
  4. Git笔记(2) 入门认知
  5. 【云快讯】《微软Sharepoint 2016 Beta版发布,强化混合云搜索功能》
  6. python进阶19垃圾回收GC
  7. 引用父类成员的关键字是java_Java 中对父类成员访问用的关键字是 ,而引用当前对象的关键字是 。_学小易找答案...
  8. 实用的 Python 包 —— 使用 win32 的剪贴板
  9. android的Imageview的src和background
  10. 解决:IDEA打开在GitHub上下载的java项目源码没有src目录的问题
  11. 《Unix网络编程》环境搭建
  12. 五种常用手机Java编程软件
  13. C语言画图形(图形库graphics的使用)
  14. 执行stap测试例报错:“insmod: can‘t insert ‘xx.ko‘: invalid module format”
  15. 智慧消防智能化管理系统综合分析
  16. linux虚拟磁盘服务,hintsoft Linux iscsi虚拟磁盘完全教程及优化攻略
  17. hackthebox - jail (考点:linux缓冲区 nfs配置提权 rvim提权 rar解密 rsa解密)
  18. oracle enlist,针对各版本的 .NET 的 Oracle 新特性
  19. (二十四)资本资产定价模型
  20. 计算机视觉公司「诠视科技 」获千万级Pre-A轮融资,君盛投资领投

热门文章

  1. 深入理解操作系统实验——bomb lab(作弊方法2)
  2. JS 事件捕获、事件冒泡以及事件委托图文详解
  3. PHP的implode函数运用,什么是PHP中的implode()函数?
  4. 六足机器人的步态分析与实现——1
  5. Rime添加Emoji输入方案
  6. linux上删除rime方案_Linux中Rime输入法安装使用小结
  7. sdnu oj 1357.Text Reverse 字符串
  8. ZCMU-1428: Bit++ (水)
  9. 【WEB 工具汇总】
  10. visual studio (VS)中文转英文(英文转中文)