第一章:HTTP 概述

天涯浪子 提交于 2019-12-10 19:49:30

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

一、MIME 媒体类型  

MIME  Multipurpose Internet Mail Extension(多用途因特网邮件扩展),最初是为了解决在不同的电子邮件系统之间存在的问题。HTTP使用MIME来描述并标记多媒体内容。

在http客户端和http服务器通讯的时候,http服务器在返回数据的时候,会为数据打上MIME类型。如下图

       

MIME类型是一种文本标记:表示一种重要的对象类型和一个特定的子类型,中间由一条斜杠来分割。

MIME类型示例:

• HTML 格式的文本文档由 text/html 类型来标记。
• 普通的 ASCII 文本文档由 text/plain 类型来标记。
• JPEG 格式的图片为 image/jpeg 类型。
• GIF 格式的图片为 image/gif 类型。
• Apple 的 QuickTime 电影为 video/quicktime 类型。
• 微软的 PowerPoint 演示文件为 application/vnd.ms-powerpoint 类型。
 

二、URI (Uniform Resource Identifier) 统一资源标识符

    每一个web资源都有一个名字,这样就可以在定位查找到需要的资源。URI类型又分为URL和URN

三、URL 统一资源定位符

    URL是最常见的资源标识符,URL描述了某一台特定服务器上某一个资源的特定位置。下图说明了URL如何定位资源。

   

大部分的URL都是由以下三部分组成的:

• URL 的第一部分被称为方案( scheme), 说明了访问资源所使用的协议类型。 这
部分通常就是 HTTP 协议( http://)。
• 第二部分给出了服务器的因特网地址( 比如, www.joes-hardware.com)。
• 其余部分指定了 Web 服务器上的某个资源( 比如, /specials/saw-blade.gif)。
 

四、URN    统一资源名

    这是一种与位置无关的,使用唯一名称来标识资源的URI。目前很少使用。

五、事务

事务是由请求命令和响应结果组成的,这种通信是通过HTTP报文(HTTP MESSAGE)来进行的。如下图:

  

六、报文

HTTP报文是由一行行简单的字符串组成的。HTTP报文都是纯文本的,因此人们可以很方便的进行读写。

客户端发送到服务器的HTTP报文称为请求报文。服务器响应给客户端的HTTP报文称为响应报文。以下是简单的HTTP报文图示。

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

 

七、连接

浏览器和服务器通过报文进行通信,那么是谁充当了这个传输者呢?

通过传输控制协议( Transmission Control Protocol, TCP) 连接从一个地方搬移到另一个地方去的。

1.可靠的TCP:

• 无差错的数据传输;
• 按序传输( 数据总是会按照发送的顺序到达) ;
• 未分段的数据流( 可以在任意时刻以任意尺寸将数据发送出去)。

因特网自身就是基于 TCP/IP 的, TCP/IP 是全世界的计算机和网络设备常用的层次
化分组交换网络协议集。 TCP/IP 隐藏了各种网络和硬件的特点及弱点, 使各种类型
的计算机和网络都能够进行可靠地通信。
只要建立了 TCP 连接, 客户端和服务器之间的报文交换就不会丢失、 不会被破坏,
也不会在接收时出现错序了。
2.HTTP一次完整的请求响应工作流程

步骤如下:
(a) 浏览器从 URL 中解析出服务器的主机名;
(b) 浏览器将服务器的主机名转换成服务器的 IP 地址;
(c) 浏览器将端口号( 如果有的话) 从 URL 中解析出来;
(d) 浏览器建立一条与 Web 服务器的 TCP 连接;
(e) 浏览器向服务器发送一条 HTTP 请求报文;
(f) 服务器向浏览器回送一条 HTTP 响应报文;
(g) 关闭连接, 浏览器显示文档。
 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!