HTTP

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 类型

    HTTP_第1张图片
    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_第2张图片
    包含请求及响应报文的 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 服务器的数据;响应主体中装载了要返回给客户端的数据。起 始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意 的二进制数据(比如图片、视频、音轨、软件程序)。当然,主体中也可以包含 文本。

    HTTP_第3张图片
    3.1.png
  • 连接

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

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


      HTTP_第4张图片
      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)