HTTP

作者: 那是一阵清风_徐来 | 来源:发表于2019-02-27 23:34 被阅读0次
    HTTP 概述

    HTTP超文本传输协议

    HTTP 使用的是可靠的数据传输协议

    • 资源
      1.1 媒体类型
      因特网上有数千种不同的数据类型,HTTP 仔细地给每种要通过 Web 传输的对
      象都打上了名为 MIME 类型(MIME type)的数据格式标签

      MIME 类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间
      由一条斜杠来分隔。
      • HTML 格式的文本文档由 text/html 类型来标记。
      • 普通的 ASCII 文本文档由 text/plain 类型来标记。
      • JPEG 版本的图片为 image/jpeg 类型。
      • GIF 格式的图片为 image/gif 类型。
      • Apple 的 QuickTime 电影为 video/quicktime 类型。
      • 微软的 PowerPoint 演示文件为 application/vnd.ms-powerpoint 类型

      1.1.png
      • 1.2 URI
        统一资源标识符(Uniform Resource Identifier,URI)
        URI 就像因特网上的邮政地址一样,在世界范围内唯一标识并定位信息资源。

        这是 Joe 的五金商店的 Web 服务器上一个图片资源的 URI:
        http://www.joes-hardware.com/specials/saw-blade.gif

    • 1.3 URL
      统一资源定位符(Uniform Resource locator,URL) URL 描述了一台特定服务器上某资源的特定位置

      1. URL 的第一部分被称为方案(scheme),说明了访问资源所使用的协议类型。这 部分通常就是 HTTP 协议(http://)。
      2. 第二部分给出了服务器的因特网地址(比如,www.joes-hardware.com)。
      3. 其余部分指定了 Web 服务器上的某个资源(比如,/specials/saw-blade.gif)。
    • 事务
      一个 HTTP 事务由一条(从客户端发往服务器的)请求命令和一个(从服务器 发回客户端的)响应结果组成。这种通信是通过名为 HTTP 报文(HTTP message) 的格式化数据块进行的

      包含请求及响应报文的 HTTP 事务.png
      • 2.1 方法
        HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法(HTTP method)

        1. GET 从服务器向客户端发送命名资源
        2. PUT 将来自客户端的数据存储到一个命名的服务器资源中去 DELETE 从服务器中删除命名资源
        3. POST 将客户端数据发送到一个服务器网关应用程序
        4. HEAD 仅发送命名资源响应中的 HTTP 首部
      • 2.2 状态码
        每条 HTTP 响应报文返回时都会携带一个状态码(比如404)

    • 报文
      从 Web 客户端发往 Web 服务器的 HTTP 报文称为请求报文(request message)。从 服务器发往客户端的报文称为响应报文(response message),

      HTTP 报文包括以下三个部分。
      1)起始行 报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说 明出现了什么情况。
      2)首部字段 起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为 了便于解析,两者之间用冒号(:)来分隔。首部以一个空行结束。添加一个首 部字段和添加新行一样简单。
      •3)主体 空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括 了要发送给 Web 服务器的数据;响应主体中装载了要返回给客户端的数据。起 始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意 的二进制数据(比如图片、视频、音轨、软件程序)。当然,主体中也可以包含 文本。

      3.1.png
    • 连接

      • 4.1 TCP/IP
        只要建立了 TCP 连接,客户端和服务器之间的报文交换就不会丢失、不会被破坏, 也不会在接收时出现错序了。【三次握手】

        HTTP 协议位于 TCP 的上层。HTTP 使用 TCP 来传输其报文 据


        HTTP 网络协议栈.png
      • 4.2 连接、IP地址及端口号
        在 HTTP 客户端向服务器发送报文之前,需要用网际协议(Internet Protocol,IP) 地址和端口号在客户端和服务器之间建立一条 TCP/IP 连接。
        怎么获得 HTTP 服务器的 IP 地址和端口号呢?当然是通过 URL 了!

    http://207.200.83.29:80/index.html
    http://www.netscape.com:80/index.html
    http://www.netscape.com/index.html

    第一个 URL 使用了机器的 IP 地址,207.200.83.29 以及端口号 80。
    第二个 URL 没有使用数字形式的 IP 地址,它使用的是文本形式的域名,或者称为 主机名(www.netscape.com)。主机名就是 IP 地址比较人性化的别称。可以通过一 种称为域名服务(Domain Name Service,DNS)的机制方便地将主机名转换为 IP 地址,这样所有问题就都解决了。第 2 章会介绍更多有关 DNS 和 URL 的内容。
    最后一个 URL 没有端口号。HTTP 的 URL 中没有端口号时,可以假设默认端口号是 80。

    相关文章

      网友评论

          本文标题:HTTP

          本文链接:https://www.haomeiwen.com/subject/uwtzeqtx.html