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

  • 相关阅读:
    hdoj 2803 The MAX【简单规律题】
    hdoj 2579 Dating with girls(2)【三重数组标记去重】
    hdoj 1495 非常可乐【bfs隐式图】
    poj 1149 PIGS【最大流经典建图】
    poj 3281 Dining【拆点网络流】
    hdoj 3572 Task Schedule【建立超级源点超级汇点】
    hdoj 1532 Drainage Ditches【最大流模板题】
    poj 1459 Power Network【建立超级源点,超级汇点】
    hdoj 3861 The King’s Problem【强连通缩点建图&&最小路径覆盖】
    hdoj 1012 u Calculate e
  • 原文地址:https://www.cnblogs.com/danielJinyu/p/11341074.html
Copyright © 2011-2022 走看看