HTTP协议基本介绍

      最后更新:2022-07-11 04:27:27 手机定位技术交流文章

      目录

      • 一、 HTTP说明
        • 1.HTTP简介
        • 2.HTTP请求方法
        • 3.HTTP工作原理
      • HTTP请求数据格式
        • 1.请求行
        • 2.请求头
        • 3.请求体
      • HTTP响应数据格式
        • 1.响应行
        • 2.响应头
        • 3.响应体
      • HTTP状态代码

      一、 HTTP说明

      1.HTTP简介

      • 概念:HyperTextTransferProtocol,定义浏览器与服务器之间的关系的超文本协议数据传输的规则
      • 特点:
        1. TCP-based:面向连接,安全
        2. 请求-响应模型:一个请求匹配一个响应
        3. HTTP协议是无状态的协议:它们没有处理事务的内存容量,每个请求响应是独立的。
      • 缺点:无法在多个请求之间共享数据(使用សម័យCookie来解决问题)
      • 优点:简单、快速、灵活

      2.HTTP请求方法

      根据HTTP标准,HTTP请求可以使用多个请求方法。
      HTTP1.0定义了三个请求方法:GET,POSTHEAD方法。
      HTTP1.1新增五种新请求方法:OPTIONS,PUT,DELETE,TRACECONNECT方法。

      3.HTTP工作原理

      HTTP协议基于客户端/服务器模式,面向链接。典型的HTTP事务处理包括以下进程。
      以下步骤用于请求/响应HTTP:

      1.建立客户端与服务器之间的连接
      一个HTTP客户端,通常是一个浏览器,与Web服务器的HTTP端口建立一个TCP插座连接(默认80)。

      客户向服务器发送HTTP请求
      客户端通过TCP接口发送一个文本请求消息,一个请求消息由请求行、请求标题、空行和请求体的四个部分组成。

      服务器接受请求并返回HTTP响应
      网络服务器分析请求,位置请求资源。 服务器将资源复制到TCP接口并从客户端读取。 响应由四个部分组成:响应线、响应头、空线和响应体。

      关闭客户端与服务器之间的连接
      若connection 模式为close,然后服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,然后连接将维持一段时间,在 这 一 期间, 可以 继续 收到 请求 ;

      HTTP请求数据格式

      HTTP请求分别由三个部分组成:请求行,请求头(请求头),请求体(请求文本)

      1.请求行

      1.请求行:请求数据的第一行,格式如下:
      method request-URI HTTP-Version
      其中method代表请求方式,request-URI代表统一资源代表的请求,HTTP-Version表示协议的版本。 以下图显示:在这里插入图片描述对于此请求行,GET代表请求方式,/代表统一资源代表的请求,HTTP/1.1代表协议版本。

      2.请求头

      2.请求项:请求项下一行,格式为key:value
      HTTP共同请求标题:

      如下图:在这里插入图片描述

      3.请求体

      3.请求主体: POST请求的最后部分,存储请求参数

      • GET和 POST请求之间的区别
      1. GET请求的请求参数是没有请求体的请求行中, POST请求的请求参数是请求体中。
      2. GET请求的请求参数大小有限, POST则没有。
      • GET和 POST之间的区别

        ①GET请求的请求参数会放在请求行中、URL之后,以?分割URL和传输数据,参数之间以&相连,如csdn.net/md?name=test1&id=123。POST的请求的请求参数在请求体中。

        2 GET提交的数据大小有限 ( 因为浏览器仅限于URL的长度 ) POST方法提交的数据并不有限.

        3 GET 方法需要 Request.The 变量值由 QueryString 获取, POST 方法由 Request.Form 获取变量值。

        ④GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.

      HTTP响应数据格式

      在接收和解释请求消息后,服务器返回一个HTTP响应消息。 HTTP响应也由三个部分组成,分别:反应线,反应头,反应体。

      1.响应行

      答复线:答复数据的第一行,格式如下:
      HTTP-Version status-code status-phrase
      其中HTTP-Version代表协议版本,status-code代表响应状态码,status-phrase以下图显示:在这里插入图片描述
      对于此响应行,HTTP/1.1代表协议版本,200代表响应状态码,OK表示状态码描述。

      2.响应头

      2. 响应头:在响应行的下一行,格式为key:value形式 HTTP常见响应头

      如下图:
      在这里插入图片描述

      3.响应体

      3.响应机构:最后部分,响应数据的存储

      HTTP状态代码

      国家代码由三个数字组成,第一个数字定义了响应类别,总共有五个主要类别:

      状态码分类 说明
      1xx 答复:临时国家代码,说明请求已收到并继续处理
      2xx 成功 - 表示请求已成功收到并处理
      3xx 重新定位 – 让客户重新启动请求完成处理
      4xx 客户端错误-请求有语法错误或请求无法实现
      5xx 服务器终止错误-服务器未能实现合法请求

      常见状态码

      状态码 状态码描述 解释
      200 OK 请求已正常处理
      302 Found 指示了秋季锁定资源已经被移动到地址响应头条给你的URL,并且浏览器会自动重新访问页面
      304 Not Modified 隐藏的向导,告诉客户端请求的资源从上次获取服务器以来没有改变,并且可以直接在本地缓存中使用
      400 Bad Request 客户端有一个语法错误,不能由服务器理解
      403 Forbidden 服务器收到请求,但拒绝提供服务。 例: 无限制访问相关资源
      404 Not Found 请求资源不存在,通常URL输入不正确,或网站资源被删除
      428 Precondition Required 服务器请求一个条件请求,要求客户端访问一个资源,并且必须携带一个特定的请求头
      429 Too Many Requests 请求太多,可以限制客户端请求某个资源的数量,配合Retry-After(多长时间后可以请求)响应头一起使用
      500 Internal Server Error 服务器发生不可预期的错误。服务器端在执行请求时发生了错误。也有可能是web应用存在bug或某些临时故障
      503 Service Unavailable 服务器暂时过载或处于备用维护状态,无法处理请求
      511 Network Authentication Required 客户端需要验证才能获得网络权限

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/29517.html

          热门文章

          文章分类