• HTTP第二篇【HTTP方法、不保存状态、提高传输效率】


    告知服务器HTTP意图的方法

    我们如果开发过Web程序的话,我们知道常用的提交方式有POST和GET方法

    我们也知道GET是用来获取数据的,POST是用来提交数据的。

    其实HTTP协议中还支持着其他的方法,比如:Input、Delete、OPTIONS很多这样的方法。而由于常用,于是我们也可能仅仅知道GET和POST方法了。

    HTTP提供方法的目的就是为了告知服务器该客户端想进行什么操作。当HTTP是OPTIONS方法的时候,服务器端就会返回它支持什么HTTP方法。

    HTTP是不保存状态的协议

    HTTP是无状态的,也就是说,它是不对通信状态进行保存的。它并不知道之前通信的对方是谁。这样设计的目的就是为了让HTTP简单化,能够快速处理大量的事务!

    但是,我们经常是需要知道访问的人是谁,于是就有了Cookie技术了。

    • 要是服务器端想要记住客户端是谁,那么就颁发一个cookie给客户端
    • 客户端把Cookie保存在硬盘中,当下次访问服务器的时候,浏览器会自动把客户端的cookie带过去。
    • 就这样,服务器就能够知道这家伙是谁了。

    持久连接

    在HTTP1.0的时候,每一次进行HTTP通信就会断开一次连接。如果容量很少的文本传输是没有问题的。但是如果我们访问一个网页,该网页有非常多的图片。一个图片就算上一个HTTP请求了。那么在中途中就不断地建立TCP连接、获取图片、断开TCP连接。

    这样是非常浪费资源的,因此在HTTP1.1版本,就是持久连接了。一次HTTP连接能够处理多个请求

    持久连接为“管线化”方式发送成为了可能:在一次HTTP连接里面,不需要等待服务器响应请求,就能够继续发送第二次请求

    编码提升传输效率

    在说明之前,首先我们要知道什么是实体主体

    • 实体主体就是作为数据在HTTP中传输的数据

    一般地,实体主体可以等价为报文主体,报文主体是HTTP中的一部分

    我们如果不使用任何手段,服务器返回的数据实体主体是原样返回的。我们可以使用两种方式来提高传输效率

    • 使用压缩技术把实体主体压小,在客户端再把数据解析
    • 使用分块传输编码,将实体主体分块传输,当浏览器解析到实体主体就能够显示了。

    我们如果在下载东西的过程中断了,按照以前我们是需要重新下载的,但是现在可以在中断中继续下载。我们可以使用到获取范围数据,这种叫做范围请求

    这种请求只会下载资源的一部分。

    • 比如我的图片下载到一半了,我们只需要下载另一半就可以组成一张完整的图片了。那么请求的时候请求没有下载的一部分即可。
  • 相关阅读:
    FreeRTOS计数型信号量
    FreeRTOS二值信号量
    FreeRTOS队列操作
    ROMTableAddr = 0xE00FF003 错误 Target DLL has been cancelled 错误
    stm32 USART_IT_IDLE中断 一帧数据
    Moving to Express 4
    node.js 模板 ejs 转
    [译]JavaScript中,{}+{}等于多少?
    mongoose简单使用样例
    MongoVUE简单操作手册
  • 原文地址:https://www.cnblogs.com/zhong-fucheng/p/7560687.html
Copyright © 2020-2023  润新知