HTTP:Web的基础
一、HTTP:Web的基础
1、URI
每个Web服务器资源都有一个名字,这样客户端就可以说明它们感兴趣的资源是什么了。服务器资源名称被称为统一资源标识符(URI)
URI有两种形式,分别为URL和URN
1.1、URL:
统一资源定位符(URL)是资源标识符最常见的形式。URL描述了一台特定服务器上某资源的特定位置。它们可以明确说明如何从一个精确、固定的位置获取资源。
大部分URL都遵循一种标准格式,包含三个部分:
- URL的第一部分被称为方案,说明了访问资源所使用的协议类型。通常就是http协议(http://)
- 第二部分给出了服务器的因特网地址(www.hardware.com)
- 其余部分指定了Web服务器上的某个资源(/img/icon.png)
1.2、URN:
URI的第二种形式就是统一资源名(URN)。URN是作为特定内容的唯一名称使用的,与目前的资源所在地无关。
2、事务
一个HTTP事务由一条(从客户端发往服务器的)请求命令和一个(从服务器发回客户端的)响应结果组成。这种通信是通过HTTP报文(http message)的格式化数据块进行的。
2.1、方法
HTTP支持几种不同的请求命令,这些命令被称为HTTP方法。每条HTTP请求报文都包含一个方法。
2.2、状态码
每条HTTP响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码,告诉客户端请求是否成功,或者是否需要采取其他动作。
3、报文
HTTP报文是由一行一行的简单字符串组成的。HTTP报文都是纯文本,不是二进制代码。
从Web客户端发往Web服务端的HTTP报文称为请求报文。从服务端发往客户端的报文称为响应报文。
HTTP报文包含三个部分:
- 起始行
报文的第一行,在请求报文中说明要做什么,在响应报文中说明出现了什么情况。
- 首部字段
起始行后面有零到多个首部字段。每个首部字段都包含一个名字和一个值,中间用冒号(:)分隔。
- 主体
首部之后就是可选的报文字体了,其中包含了所有类型的数据。
4、连接
4.1、TCP/IP
HTTP是个应用层协议。HTTP无需操心网络通信的具体细节,它把联网的细节都给了通用、可靠的因特网传输协议TCP/IP。
TCP提供了:
- 无差错的数据传输
- 按序传输(数据总是会按发送的顺序到达)
- 未分段的数据流(可以再任意时刻以任意尺寸将数据发送出去)
HTTP协议位于TCP的上层。HTTP使用TCP来传输其报文数据。与之类似,TCP则位于IP的上层。
4.2、连接、IP地址及端口号
在HTTP客户端向服务端发送报文之前,需要用网际协议(IP)地址和端口号在客户端和服务器之间建立一条TCP/IP连接。
在TCP中,你需要知道服务器的IP地址,以及与服务器上运行的特定软件相关的TCP端口号。URL就是资源地址所以自然能够为我们提供储存资源的机器的IP地址。
域名又称为主机名,主机名就是IP地址比较人性化的别称。可以通过一种称为域名服务(DNS)的机制方便的将主机名转换为IP地址。
二、HTTP报文