初步理解HTTP协议

本文深入解析HTTP协议,包括其基本概念、请求方式(GET、POST、DELETE、PUT)、HTTP与HTTPS的区别,以及HTTP1.0与HTTP1.1的对比。探讨了HTTP的长连接与短连接特性,并分析了它们的应用场景。
  • 什么是Http协议
  1. 就是客户端和服务端进行的传输格式,简称超文本传输协议。
  2. 是基于socket的tcp传输协议。
  • http无状态协议
  1. 当浏览器发送请求给服务器的时候,服务器响应客户端请求。但是当同一个浏览器再次给你服务器发送请求的时候,服务器并不知道它就是刚才那个浏览器。
  • HTTP常见的四种请求方式GET、POST、DELETE、PUT

  1. GET
    GET用于向服务器获取数据,用来查询下数据,不会修改、增加数据,不会影响资源的内容。
    提交的数据最多只能是1024字节,GET请求的数据会附在URL之后,

  2. POST
    POST用于向服务器发送新增数据,像insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。
    理论上没有数据大小限制,可传较大量的数据,POST请求的数据会附在请求体中
    POST的安全性要比GET的安全性高,GET请求会将用户名和密码出现在url中,这种url被浏览器缓存在后,别人通过浏览记录就能获取

  3. DELETE
    就是用来删除某一个资源的,该请求就像数据库的delete操作

  4. PUT
    PUT用于向服务器发送修改数据,从而改变信息,像update操作一样,用来修改数据的内容,不会增加数据的种类等。

  • Http防盗链思路
  1. 应用场景:防止你的图片、js、css等资源被其他项目引入,占用宽带资源。
  2. 通过过滤器实现
    // 获取请求的来源
    String referer = request.getHeader("referer");
    // 判断来源是否在允许
    if (referer == null || !referer.contains(request.getServerName())) {
    	request.getRequestDispatcher("/static/error.png").forward(request, response);
    } else {
    	filterChain.doFilter(request, response);
    }
    

     

  • 重定向的实现原理
  1. 浏览器是根据返回的响应码来判断是否重定向
  2. 当浏览器收到的响应码是302(重定向)的响应码时,就会去获取响应头中Location对应的value值,根据这个value作为url,浏览器会再次发出请求。
  3. /**
     * 重定向
     * Create by wangxb
     * 2019-05-24 7:06
     */
    @Controller
    public class IndexController {
    
        @GetMapping("/index")
        public void index(HttpServletRequest request, HttpServletResponse response){
            response.setStatus(302);
            response.setHeader("Location","other");
        }
    
        @GetMapping("/other")
        public void other(HttpServletRequest request, HttpServletResponse response) throws IOException{
            response.getWriter().write("我是重定向过来的");
        }
    }
    

     

  • http和https的区别
  • http
  1. http是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
  2. HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全
  3. 安全性低,效率高
  • https
  1. 是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
  2. https则是具有安全性的ssl加密传输协议
  3. 底层使用对称加密和非对称加密的混合算法,安全性高(防抓包),效率低
  • HTTP1.0与HTTP1.1
  1. http1.0属于短链接
  2. http1.1属于长链接   
  • 长连接与短链接
  1. 短连接 
    浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。如果客户端浏览器访问的某个HTML或其他类型的 Web页中包含有其他的Web资源,如JavaScript文件、图像文件、CSS文件等;当浏览器每遇到这样一个Web资源,就会建立一个HTTP会话。 
       
     短连接的操作步骤是:
     建立连接——数据传输——关闭连接…建立连接——数据传输——关闭连接
     
  2. 长链接 
    当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的 TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接要客户端和服务端都支持长连接。
     使用长连接的HTTP协议,会在响应头有加入这行代码:Connection:keep-alive
       
     长连接的操作步骤是:
     建立连接——数据传输…(保持连接)…数据传输——关闭连接
     http默认情况下在300s为空闲状态情况下会主动断开连接;
  3. HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接 
     
  4. 长连接是什么时候关闭
     响应头Keep-Alive: timeout。这个值能够让一些浏览器主动关闭连接,这样服务器就不必要去关闭连接了
     自动探测一次,发现对方关闭,则断开连接
     
  5. 长连接和短连接的优点和缺点
    长连接可以省去较多的TCP建立和关闭的操作,减少浪费,节约时间。对于频繁请求资源的客户来说,较适用长连接。
     
  6. 什么时候用长连接?什么时候用短连接?
     

    长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况,。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。

    而像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连好。

  7.  长连接与短连接应用场景
     长连接应用于场景 客户端(移动App)与服务器消息推送、RPC远程调用
     短链接应用于调用接口(如果不是很频繁)
     
内容概要:本文围绕可变桨叶四旋翼无人机的规范控制与点对点运动模拟展开,重点研究优化推力分配策略在翻转动作中的应用与性能比较。通过Matlab代码实现,构建了四旋翼动力学模型,并设计了多种控制算法以实现精确的姿态调整与轨迹跟踪。研究对比了不同推力分配方案在执行高机动性翻转动作时的稳定性、能耗效率与响应速度,旨在提升无人机在复杂飞行任务中的动态性能与控制精度。该仿真研究为无人机飞控系统的设计与优化提供了理论依据和技术支持。; 适合人群:具备一定自动控制理论基础和Matlab编程能力,从事无人机控制、飞行器动力学或机器人系统研究的科研人员及研究生。; 使用场景及目标:① 实现四旋翼无人机在三维空间中的精确点对点运动控制;② 对比分析不同推力分配策略在执行翻转等高难度动作时的控制效果与能耗表现,优化飞行性能;③ 为无人机自主飞行、特技飞行及复杂环境下的机动控制提供算法验证平台。; 阅读建议:此资源以Matlab仿真为核心,建议读者结合相关控制理论知识,深入理解代码实现细节,重点关注动力学建模、控制律设计与推力分配模块。在学习过程中,应动手调试参数,复现文中翻转动作的仿真结果,并尝试拓展至其他复杂飞行任务,以加深对无人机控制机理的理解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值