HTTP介绍

      最后更新:2022-06-11 06:56:06 手机定位技术交流文章

      HTTP介绍

        • Http简介
        • 请求数据格式
          • 格式介绍
          • 实列演示
        • 响应数据格式
          • 格式介绍
          • 响应状态码
          • 自定义服务器

      Http简介

      HTTP概念

      超文本传输协议(HTTP)是浏览器和服务器之间的超文本传输协议数据传输的规则

      • 数据传输规则指需要以指定格式传输的请求数据和响应数据。
      • 如果你想知道具体的格式,你可以点击打开浏览器F12打开开发工具并点击网络或网络要查看请求数据和请求响应数据的具体格式内容,请参阅以下图表:
        在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 因此,学习HTTP主要是学习请求和响应数据的具体格式内容。

      HTTP协议特点

      HTTP协议具有自己的特征,这些特征是:

      • 基于TCP的协议:面向连接,安全

        TCP是一个面向连接的(在建立连接之前需要三个手)可靠的、基于字节流的层级通信协议,对于数据传输来说更安全。

      • 请求-响应模型:一个请求与一个响应相符

        请求和答复是一对一的通信

      • HTTP协议是无状态的协议:它们没有处理东西的内存容量。 每个请求响应是独立的

        statusless 意味着,当客户端向服务器发送HTTP请求后,服务器不会根据请求响应数据完成响应后记录任何信息。

        • 缺点:无法在多个请求之间共享数据
        • 优点:速度快

      无法在请求之间共享数据可能造成问题,例如:

      • 京东购物,加入购物车去购物车结算是两次请求,
      • HTTP协议的无状态特性,不能记录在购物车请求响应末端的货物是什么
      • 如对购物车进行结算的请求被提出,该请求可能不能正确显示数据,因为无法取得购物车所添加的货物

      具体使用时,我们发现北京通常可以显示数据,因为Java已经考虑了这个问题,提出了使用会议技术(Cookie,会议)下面我们将详细讨论如何解决这个问题。 刚才提到的HTTP协议定义了请求和响应数据的格式,具体格式是什么?

      请求数据格式

      格式介绍

      总的来说,请求数据分为三个部分:请求行请求头请求体
      在这里插入图片描述

      • 请求行:HTTP请求中的第一个数据行,请求行包含三个内容块,分别GET[请求方法]/[请求URL路径]HTTP/1.1[HTTP协议和版本],有七种请求模式,最常见的是GET和 POST

      • 请求标题:第二行开始使用格式键:值,并包含多个属性。常见的HTTP请求标题包括:

      这些数据有什么用处?
      例如:服务端可以根据请求标题的内容获取与客户有关的信息,并通过这些信息,服务端可以处理不同的业务要求,例如:

      1. 不同的浏览器以不同的方式对HTML和CSS标签进行分析,结果为不同浏览器相同的代码产生不同的结果
      2. 服务器根据客户端请求项中的数据获取客户端的浏览器类型,可以根据不同的浏览器设置不同的代码来实现相同的效果
      3. 这就是我们经常所说的浏览器兼容性
      • 请求主体: POST请求的最后部分,存储请求参数
        *如果上面的红色框的内容是请求体的内容,那么请求体和请求头将被空行隔开。 此时浏览器发送了 POST请求,为什么不使用GET呢? GET和 POST请求之间的区别需要加以审查:
      • GET请求请求参数在请求行中,没有请求机构, POST请求请求参数在请求机构中
      • 获取请求请求参数大小有限, POST不是

      实列演示

      修改页面中的表格方法属性,以测试GET请求和 POST请求的参数传递。
      在这里插入图片描述设置获取请求模式的方法:
      在这里插入图片描述在这里插入图片描述设置方法以 POST请求模式:
      在这里插入图片描述在这里插入图片描述在这里插入图片描述

      响应数据格式

      格式介绍

      响应数据分别分为三个部分响应行响应头响应体
      在这里插入图片描述

      • 答复行:答复数据的第一行,答复行包含三个内容块,分别是HTTP/1。 1 [HTTP协议和版本] 200 [答复状态代码] ok [状态代码的描述]
      • 响应标题:第二个行开始,格式为key:value格式,并包含几个属性。
      • 响应体: 最后部分.在上面图中保存响应数据.. 内容的这个部分是响应体,它有一个空行将它从响应头分开。

      响应状态码

      关于响应状态代码,我们首先主要识别三个状态代码,其余部分则被用于掌握:

      • 200 ok 客户请求成功
      • 404 未找到请求资源不存在
      • 500 内部服务器错误服务端 unexpected error
      状态码分类 说明
      1xx 作为回应 - 临时状态代码, 说明请求已经接受, 告诉客户继续请求或如果已完成,则忽略它
      2xx 成功 - 表示请求已成功收到并处理
      3xx Redirecting — Redirecting to another location: 允许客户端重新启动请求完成整个过程。
      4xx 客户错误-处理出现的错误,客户的责任,例如客户要求不存在的资源,客户没有授权,访问被禁止,等等。
      5xx 服务器端错误-出现的处理错误、服务端的责任,例如:服务端例外、路由错误、HTTP版本不支持等等。

      国家代码概览: https://cloud.Ten cent.com/developer/chapter/13553

      状态码 英文描述 解释
      200 OK 客户请求成功,即成功处理,这是我们最希望看到的状态代码
      302 Found 指示请求资源已移到Location响应头条指定的URL,浏览器将自动重浏览此页
      304 Not Modified 告诉客户端,您请求的资源从上次获取以来没有改变,并直接使用您的本地缓存。
      400 Bad Request 客户端请求有一个语法错误,不能由服务器理解
      403 Forbidden 服务器收到请求,但拒绝提供服务,例如:没有访问相关资源的权限
      404 Not Found 请求资源不存在,通常URL输入错误,或网站资源被删除
      428 Precondition Required 服务器请求一个条件请求,它告诉客户端如果他想访问资源,要携带一个特定的请求头
      429 Too Many Requests 太多的请求,可以限制请求资源的客户端数目,并结合复试后响应头
      431 Request Header Fields Too Large 请求头太大,服务器不想处理请求,因为头字字段太大。 请求可以在减少请求头字的大小后重新提交。
      405 Method Not Allowed 请求方法错误,例如资源应该使用GET请求方法,使用 POST
      500 Internal Server Error 在服务器上发生了意外的错误。 服务器不正常。
      503 Service Unavailable 服务器尚未准备好处理请求,服务器刚刚启动并尚未启动
      511 Network Authentication Required 客户端需要身份验证才能访问网络

      自定义服务器

      在前面的节中,我们介绍了IDEA的http项目中的服务器。 包含自定义服务器代码的Java类主要由ServerSocketSocket

      上面代码,大家不需要自己写,主要通过上述代码,你只需要知道服务器可以编译Java,可以接受向前端浏览器发送的页面请求和响应数据,真正使用的网络服务器,我们不会自己写,他们都使用当前更受欢迎的网络服务器,比如Tomcat

      小结

      1. 响应数据由三个部分组成:响应线、响应头和响应体

      2. master 200, 404, 500 这些三个响应状态代码表示分配成功,访问的资源不存在,服务不正常

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

          热门文章

          文章分类