zoukankan      html  css  js  c++  java
  • 第二章 简单的HTTP协议

    第二章 简单的HTTP协议

    针对HTTP协议结构进行讲解

    1.通过请求和响应的交换来达成通信目的

      应用HTTP协议时,必定是一端担任客户端角色,另一端担任服务器端角色。

      【请求报文】是由请求方法、URI、协议版本、请求首部字段、内容实体组成的。

      【响应报文】是由协议版本、状态码、状态码原因短语、响应首部字段、响应实体组成的。

    2.HTTP是不保存状态的协议(无状态)

       HTTP 是一种不保存状态,即无状态协议。HTTP 协议自身不对请求和响应之间的通信状态进行保存。也就是说在 HTTP 这个级别,协议对于发送过的请求或响应都不做持久化处理。这是为了更快的处理大量事务,确保协议的可伸缩性。

    3.请求方法

    GET】获取资源

    POST】传输实体主体,虽说POST和GET作用类似,但是POST主要目的不是获取响应的主题内容,而是为了传输内容给服务端。

    PUT】传输文件:要求请求主体里包含文件内容。

    HEAD】获得报文首部:HEAD 方法和 GET 方法一样,只是不返回报文主体部分。用于确认URI 的有效性及资源更新的日期时间等。

    DELETE】删除文件

    OPTIONS】询问支持的方法:用来查询针对请求URI指定的资源支持的方法。

    TRACE】追踪路径:让Web服务端将之前的请求通信还会给客户端。

    CONNECT】要求用隧道协议连接代理:主要使用SSL和TLS协议把通信内容加密后经网络隧道传输。

     4.持久连接节省通信量

      持久连接特点:只要任意一端没有明确提出断开连接,则保持TCP连接状态。称为keep-alive或者connection reuse。目的是为了建立一次TCP连接后进行多次请求和响应的交互。HTTP/1.1中所有的连接默认是持久连接,但在HTTP/1.0未标准化。

      【管线化】从前发送请求后需要收到响应,才能发送下一个请求。管线化技术出现后,不用等待响应就可以直接发送下一个请求。这样就可以实现并行发送多个请求。

    5.使用Cookie的状态管理  

      HTTP 是无状态协议,它不对之前发生过的请求和响应的状态进行管理。也就是说,无法根据之前的状态进行本次的请求处理。所以引入Cookie技术,Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端状态。

      Cookie 会根据从服务器端发送的响应报文内的个叫做 Set-Cookie 首部字段信息,通知客户端保存 Cookie当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。

      服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

  • 相关阅读:
    Java核心(七):this和super的区别
    Java核心(六):==和equals()的区别;重写equals()方法
    java核心(五):堆内存、栈内存;String赋值时,内存变化
    Java核心(四):Java中的装箱和拆箱
    Java核心(三):代码块的作用
    从数据库中导出.csv文件
    mongodb中数据类型的坑
    return 和 echo 的小坑
    对数据库中初始的数据在后台进行翻译
    SQL语句执行效率及分析
  • 原文地址:https://www.cnblogs.com/qmillet/p/12075365.html
Copyright © 2011-2022 走看看