【推荐】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) 关闭连接, 浏览器显示文档。
来源:oschina
链接:https://my.oschina.net/u/3052654/blog/810345