HTTP趣文,轻松学习了解~

HTTP历史

 HTTP:超文本传输协议
 1990年,HTTP问世,被称为HTTP/0.9。
 1996年5月,HTTP正式作为标准被公布,版本命名为HTTP/1.0。
 1997年1月,公布HTTP/1.1,是目前主流的HTTP协议版本。当初标准是RFC2068,之后发布的RFC2616就是当前的最新版。

作为web文档传输协议的HTTP,版本几乎没有更新。

TCP/IP协议

TCP/IP协议族

计算机与网络设备想要相互通信,双方就必须基于相同的方法。比如由那一端发起的,使用的那种语言进行通讯…等等,所有这一切都需要一个规则。我们把这个规则叫做协议
把互联网相关联的协议集合起来称为TCP/IP(IEEE802.3,FDDI,ICMP,TCP,HTTP,IP,FTP,DNS,SNMP,PPPoE,UDP);

TCP/IP分层管理

TCP/IP协议族里最重要的一点就是分层。 TCP/IP协议按照层次分为 四层:

  • 1)应用层:
    应用层决定了向用户提供应用服务时通信的活动。 TCP/IP协议族内预存了各类通用的应用服务:FTP(文件传输协议), DNS(域名系统)等等… HTTP协议也处于应用层
  • 2)传输层
    传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。 此层的协议有:TCP(传输控制协议)和 UDP(用户数据协议)
  • 3)网络层
    网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。
  • 4)数据链路层
    用来处理连接网络的硬件部分。包括控制操作系统,硬件的设备驱动,NIC(网络适配器,【网卡】),及光纤等物理可见部分。

在这里插入图片描述

利用tcp/ip协议族进行网络通信的时候,会通过分层顺序与对方进行通信。 发送端从应用层往下走(套娃似的),接收端从链路层往上走(拆套娃)。
举列子: 客户端:

  • 1,作为发送端 发送一个HTTP请求(应用层)
  • 2,为了方便传输,在传输层(TCP协议)把从应用层收到的数据(HTTP报文)进行切分,并在个个报文上打上标记号以及端口号后发送给网络层
  • 3,在网络层(IP协议),增加作为通信地址的MAC地址转发给链路层。这样,发往网络的的通讯请求就准备齐全了 通过路由直到找到接收端, 接收端再一层一层的向上解析,合并报文…
  • 4,当传输到应用层,才算真正接收到由发送端发来的HTTP请求

在这里插入图片描述

发送端在层与层之间传输数据时,每经过一层时都会被打上该层所属的首部信息,接收端反之。
把这种数据信息包装起来的做法称之为封装

IP协议 ~

作用:

IP协议的作用是把各种数据包传输给对方。而要保证确实传输到对方那里,则需要满足各种条件,其中两个重要的条件为IP地址和MAC地址
IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以与MAC地址进行配对。IP地址可变换,而MAC地址基本上不更换

使用ARP协议凭借MAC地址进行通信:
什么是ARP协议:ARP协议为解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。

IP间的通信依赖MAC地址。在网络上,通讯的双方在同一个局域网的情况很少,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标。
这时候就会采用ARP协议

在到达通信目标之前的中转过程,那些计算机和路由器等网络设备只能获取到很粗略的传输路线。

这种机制称为路由选择,就像是寄快递的过程,你将快递交给快递公司,比如寄往*** 省*** 市*** 县 ** 小区,他会先送到省份的集散中心,再送到市的,再送到县城的,然后会由小哥派发到你手上…

在这里插入图片描述

TCP协议 ~

TCP协议的作用:将数据切分方便传输,确保数据能到达目标(三次握手

TCP协议提供可靠的字节流服务:字节流服务指将大块的数据分割成以报文为单位的数据包进行管理

TCP协议三次握手:TCP把数据包发送出去后,不会对传输后的情况置之不)理,它一定会向对方确认是否成功送达。握手过程使用了TCP的标志(flag)——SYN(synchronize)和ACK(acknowledgement);
···························
三次握手-过程:

  • 1.发送端首先发送一个带有SYN标志的数据包给接收端;
  • 2.接收端收到数据后,向发送端返回一个带有SYN/ACK标志的数据包, 以示收到消息;
  • 3.发送端再回传给接收端一个带有ACK标识的数据包,代表’握手‘结束 ;

在这里插入图片描述

DNS协议 ~

DNS协议的作用:提供域名到IP地址之间的解析服务

为啥要用域名?因为IP地址一堆数字属实不好记,记域名多好记,比如www.csdn.net…

因为计算机擅长处理一长串数字,所以,让计算机去理解名称,就有些困难了,所以DNS协议出现,DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务

在这里插入图片描述

各个协议工作图 ~

在这里插入图片描述

HTTP/1.1

HTTP规定,请求从客户端发出,最后服务器端响应该请求并返回。服务器端在没有接收到请求之前不会返回任何东西~

下面发送模拟发送个请求,看看客户端和服务端的表现:

在这里插入图片描述
请求报文的构成
在这里插入图片描述
响应报文的构成
在这里插入图片描述

HTTP是无状态协议

HTTP是一种不保存状态的(无状态)协议:HTTP协议自身不会对请求和响应之间的通信状态进行保存,不做持久化,发过就忘了~

常用的HTTP请求方式

常用的HTTP请求为GET和POST,GET 和 POST:两者的功能非常相似,但是post请求的主要目的不是为了获取响应的主体内容。

GET:获取资源:GET方法用来请求已被URI标识的资源。指定的资源经服务器解析后返回响应给客户端内容。意思就是,如果请求的是文本,那就保持原样返回给客户端。
在这里插入图片描述
POST传输实体主体:POST方法用来传输实体的主体,虽然用GET方法也可以传输实体的主体,但一般不用GET方式进行传输,POST的主要目的并不是获取响应的主体内容。
在这里插入图片描述
其他请求方式

方法说明支持的HTTP
GET获取资源1.0,1.1
POST传输实体主体1.0,1.1
PUT传输文件1.0,1.1
HEAD获得报文首部1.0,1.1
DELETE删除文件1.0,1.1
OPTIONS询问支持的方法1.1
TRACE追踪路径1.1
CONNECT要求用隧道协议连接代理1.1
在此,我就不一一说明了解GET和POST就差不多了~
持久连接节省通讯量

HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接。

老版本:
在这里插入图片描述

前些年因为都是很小的文本传输,所以即使这种情况也没什么大问题,可随着时间的推移,现在的页面是越来越花里胡哨,整的炫酷的一b,文档中包含大量图片的情况也越来越多。因此,每次都来握手挥手,就增加了通信的开销:
在这里插入图片描述
1,持久连接

  • 为解决上述TCP连接问题,提出了持久连接的方法。
  • 持久连接的特点是,只要任意一端没有明确提出断开连接,则保持TCP连接状态。

意为,建立一次TCP请求后进行多次请求和响应的交互
在这里插入图片描述

持久连接是一个请求 一个响应,等一个请求收到响应后,才能进行下一个请求,需要等待哦~

2,管线化

持久连接让管线化方式成为可能,不用等待响应亦可以直接发送下一个请求,这样子就不需要一个个等待响应了

在这里插入图片描述

比如,当请求一个包含10张图片的页面时,与挨个连接相比,用持久连接可以让请求更快结束。而管线化技术则比持久连接速度还要快。请求数量越多,时间差就越明显

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值