zoukankan      html  css  js  c++  java
  • HTTP协议


    一、什么是Http协议?

      HTTP协议是HyperText Transfer Protocol的缩写,即超文本传输协议。是由w3c(万维网联盟)制定的一种应用层协议。

      HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

    二、Http协议的作用?

      用来定义浏览器与web服务器之间如何通信以及通信的数据格式。
     

    三、Http协议如何通信的?

      1、建立连接

      2、发送请求

      3、接收响应

      4、关闭连接

    四、Http协议三点注意事项

    • HTTP是无连接的:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
    • HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
    • HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

    五、HTTP协议的优点:每次请求都创建新连接,可以降低服务器压力.在这个过程中,一次请求对应一次连接,当浏览器再次发请求给服务器时,Web服务器并不知道这就是上次发请求的客户端,这也是HTTP协议的一个特点-无状态协议。这种需要时建立连接,使用结束后立即断开连接的方式使得Web服务器可以利用有限的连接为尽可能多的客户提供服务。也正是具备了这样的特点,才使得BS结构能够承载企业级应用的大量访问。

    六、Http协议中的消息结构

      1、请求数据包组成

        a、请求行,包括请求方式请求资源路径,以及协议版本

        b、消息头是由若干的键值对组成,主要用于传递给Web服务器一些信息。如,浏览器版本接受资源的类型等。

        c、在消息头的下面会跟着一个空白行,这样就可以区分出消息头与实体内容这两个部分。

        d、而在请求数据包中,大部分情况实体内容为空,只有当请求方式为POST时,实体内容才有要提交的表单数据。

                  

                   

      2、响应数据包组成

        a、状态行,包括协议类型版本状态码状态描述

        b、消息头(若干),也是多组键值对组成的信息说明。如返回的Content-Type消息头可以告诉浏览器返回的结果数据类型和字符集。

          详细信息查询:这里

        c、空白行,位于消息头下面的一个空白行,空白行意在通知浏览器消息头的结束以及结果内容的开始,浏览器就从这里开始数据的逐行解析。

        d、实体内容

                      

    七、Http的请求方法:

      HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。

      HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

    • OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。 
    •  HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。 
    •  GET:向特定的资源发出请求。 
    •  POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。 
    •  PUT:向指定资源位置上传其最新内容。 
    •  DELETE:请求服务器删除 Request-URI 所标识的资源。 
    •  TRACE:回显服务器收到的请求,主要用于测试或诊断。 
    •  CONNECT:HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 

      虽然 HTTP 的请求方式有 8 种,但是我们在实际应用中常用的也就是 get 和 post,其他请求方式也都可以通过这两种方式间接的来实现。

    八、Http的状态码:详细可以查询:这里

    HTTP状态码分类
    分类分类描述
    1** 信息,服务器收到请求,需要请求者继续执行操作
    2** 成功,操作被成功接收并处理
    3** 重定向,需要进一步的操作以完成请求
    4** 客户端错误,请求包含语法错误或无法完成请求
    5** 服务器错误,服务器在处理请求的过程中发生了错误


    作者:danielJinyu

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意请保留此段声明,请在文章页面明显位置给出原文连接
    Github:https://github.com/DanielJinyu

  • 相关阅读:
    Python基础23_os,sys,序列化,pickle,json
    Python基础22_模块,collections,time,random,functools
    Python基础21_类与类型, MRO, C3算法, super()
    Python基础20_类的约束,异常处理,MD5加密,日志
    python反射机制
    python 依赖关系 与关联关系
    python 类的常见的特殊成员
    类的成员(*变量与*方法)
    初识面向对象
    简说匿名函数与递归
  • 原文地址:https://www.cnblogs.com/danielJinyu/p/11341074.html
Copyright © 2011-2022 走看看