zoukankan      html  css  js  c++  java
  • HTTP协议详解【转】

      HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。

      HTTP(端口80)协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS(端口443)。

      HTTP协议永远都是客户端发起请求,服务器回送响应。这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。 HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。

      一次HTTP操作称为一个事务,其工作过程可分为四步:

    1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。

    2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。 

    3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。 

    4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

      如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。

    HTTP请求报文格式:

    HTTP请求报文主要由请求行、请求头部、空行以及请求正文4部分组成

    1,请求行由3部分组成,分别为:请求方式,URI(通用资源标识符,注意这里不是URL)以及协议版本组成,之间由空格分隔

    请求方法主要包括GET、POST等;常见的协议版本有HTTP/1.1

    2,请求头部包含很多有关客户端环境以及请求正文的有用信息

    请求头部由“关键字/值”对组成,每行一对,关键字和值之间使用英文“:”分隔

    3,空行,这一行非常重要,必不可少,表示请求头部结束,接下来为请求正文

    4,请求正文,如以POST方式提交的表单数据

    GET请求示例:

    POST请求示例:

    GET请求方式和POST请求方式到底有什么不同:

    1,POST方式比GET更加安全(相对的)

    GET方式请求参数放在请求行中作为请求URI的一部分,POST方式请求参数放在请求正文中,我们是可以对请求正文进行加密的

    2,如果传输大数据量,只能使用POST方式

    由于GET方式将请求参数放置在请求行URI中,故参数的长度受限于URL的长度限制;POST方式请求参数放在请求正文中,请求正文没有长度限制

    HTTP响应报文格式:
    HTTP响应报文主要由状态行、响应头部、空行以及响应正文4部分组成

    1,状态行由3部分组成,分别为:HTTP协议版本,状态代码,状态代码描述

    状态代码为3位数字,由1、2、3、4以及5开头,2开头的指响应成功,3开头的指重定向,4开头的指客户端错误,5开头的指服务端错误。详细的状态码就不介绍了,这里列举几个常见的:

    200:响应成功

    400:错误的请求,用户发送的HTTP请求不正确

    404:文件不存在,也就是HTTP请求URI错误

    500:服务器内部错误

    2,响应头部与请求头部类似,也包含了很多有用的信息

    3,空行,这一行非常重要,必不可少,表示响应头部结束,接下来为响应正文

    4,响应正文,服务器返回的文档,最常见的为HTML网页

    响应示例:

  • 相关阅读:
    梅森素数
    高精度乘法
    快速幂取模
    高精度加法
    Linux 压缩&解压缩
    Lec_Cloud资源云平台
    IP102,IP102-K_V3.0 输入节点机
    A7互动主机
    音频处理器的使用
    关于测试随笔
  • 原文地址:https://www.cnblogs.com/seven7seven/p/3906816.html
Copyright © 2011-2022 走看看