• 01-http概述


    HTTP概述

    • HTTP使用的是可靠地数据传输协议。
    • HTTP属于应用层协议

    Web客户端和服务器

    • web服务器:又称http服务器,用于存储web内容,并向web客户端提供web内容
    • web客户端:用于请求web服务器的应用软件,常见为浏览器

    资源

    媒体类型

    MIME类型是一种文本标记,表示一种主要对象类型和一个特定的子类型,用/分隔;

    URI(统一资源标识符)

    URI的两种形式为:URL与URN

    URL(统一资源定位符)
    1. 描述一台特定服务器上某资源的特定位置
    2. 目前几乎所有URI都是URL
    3. 解析URL组成:例如:https://www.baidu.com/img/a.png;
    • 方案,说明访问资源说使用的协议类型。通常为http或https协议,上方为例即:https//
    • 服务器因特网地址(域名):上方为例即:www.baidu.com
    • 指定资源路径:上方为例即:/img/a.png
    URN(统一资源名)

    作为特定内容的唯一名称使用,与目前资源的所在地无关。目前处于实验阶段,并不推广使用

    事务

    方法

    常见http方法如下:

    • GET:从服务器向客户端发送命名资源
    • PUT:将来自客户端的数据存储到一个命名的服务器资源中去
    • DELETE:从服务器中删除命名资源
    • POST:将客户端数据发送到一个服务器网管应用程序
    • HEAD:仅发送命名资源响应中的HTTP首部

    状态码

    • 每条HTTP响应报文返回时都会携带一个状态码
    • 状态码都为三位数值的代码,代表着额定意义
    • 状态码后都会有一条解释性的原因短语
      常见状态码:
    • 200:OK。文档正确返回
    • 302:Redirect(重定向)。到其他地方取资源
    • 404:Not Found(未找到)。无法找到该资源

    报文

    • HTTP报文是由一行一行的简单字符串组成的。HTTP报文都是纯文本,不是二进制代码
    • 请求报文(request message):web客户端向web服务器发送的报文
    • 响应报文(response message):web服务器向web客户端发送的报文

    http报文的三部分

    1. 起始行:请求报文包含请求路径,请求方法,http协议版本;响应报文包含http协议版本,http状态码,状态码解释短语
    2. 首部字段(header头):每个首部字段都包含一个名字和一个值,使用:分隔,多个字段使用新行分隔,并以空行结束
    3. 主体:请求报文包含发送给web服务器的数据;响应报文包含发送给客户端的数据

    链接

    TCP/IP

    TCP特点

    • 无差错的数据传输
    • 按序传输(数据按照发送的顺序到达)
    • 未分段的数据流(可以在任意时刻以任意尺寸将数据发送出去)
      HTTP协议栈
      HTTP协议栈

    连接、IP和端口号

    连接过程
    http链接无端口号时,默认端口号为80

    协议版本

    按照时间顺序如下:

    • HTTP0.9:只支持GET方法,不支持多媒体的MIME内容,各种HTTP首部与版本号,只应该用于与老的客户端进行连接
    • HTTP1.0:添加了版本号,各种HTTP首部,一些额外的方法,以及多媒体对象的处理
    • HTTP1.1:重点关注的是校正HTTP设计中的结构性缺陷,明确语义,引入重要的性能优化措施,并删除一些不好的特性
    • HTTP2.0(HTTP-NG):目前仍在实验中。重点关注性能的大幅优化,以及更强大的服务逻辑远程执行框架

    web的结构组件

    代理

    位于客户端和服务端之间的HTTP中间实体
    在这里插入图片描述

    缓存

    HTTP的仓库,使常用页面的副本可以保存在离客户端更近的地方
    在这里插入图片描述

    网关

    连接其他应用程序的特殊web服务器
    在这里插入图片描述

    隧道

    HTTP通信报文进行盲转发的特殊代理
    在这里插入图片描述

    Agent代理

    发起自动http请求的半智能web客户端
    在这里插入图片描述

  • 相关阅读:
    RTI-DDS在VS+QT使用记录
    SpringCloud 服务的拆分及远程调用
    Android Studio 生成开发库并打包maven包上传到私有服务器使用
    给电脑重装系统后修改远程桌面端口的方法
    C语言 : 文件的操作
    Spring Framework IOC入门案例&DI入门案例分析(Xml版)
    导航守卫的使用记录和beforeEach( )死循环的问题
    免费使用ChatGPT 4.0 和 文心一言 4.0
    【MySql】 深入理解SQL中的日期处理:NVL和TIMESTAMPDIFF函数的应用
    mybatis中的多表查询
  • 原文地址:https://blog.csdn.net/weixin_39876270/article/details/133365702