HTTP概述
Web客户端和服务器
web客户端:最常见的web客户端就是web浏览器,如微软的Internet Explorer,网景的Navigator。
web服务器:指的就是一台安装了特定软件的公共计算机,专门用于提供特定的服务,按照服务类型的不同,又分为web服务器、数据库服务器、文件服务器等。
资源
资源:一般指web服务器文件系统的静态文件,也可以是程序动态生成的文件。
媒体类型(MIME type):为了解决在不同的电子邮件系统之间搬迁报文时存在的问题。
MIME:Multipurpose Internet Mail Extension 多用途因特网邮件扩展。
Web服务器会为所有HTTP对象数据附加一个MIME类型,当Web浏览器从服务器获取到一个对象时,
会自动查看相关的MIME类型。
MIME类型是一种文本标记,表示一种主要的类型对象和一个特定的子类型,中间由一条斜杆来分割。
说明 标记类型
---------------------------------
HTML格式的文本文档 text/html
普通的ASCII文本文档 text/plain
JPEG图片 image/jpeg
GIF图片 image/gif
Apple的QuickTiem电影 video/quicktime
URI(Uniform Resource Identifier): 统一资源标识符,在世界范围内唯一标识定位信息资源。
URL:URL表示统一资源定位符,是URI的常见形式。
URL遵循的标准格式
协议类型 服务器域名 服务器资源
http:// www.baidu.com /index.html
URN:URN是统一资源名,URL作为特定内容的唯一名称使用的,与目前的资源所在地无关,使用这些与位置无关的URN,就可以将资源四处搬移。
事务
HTTP事务:一个HTTP事务由一条请求命令(web客户端发往web服务器)和一个响应结果(从服务器发回web客户端)组成,这种通信是通过HTTP报文(HTTP message)的格式化数据块进行的。
方法:HTTP支持几种不同的请求命令,这些命令被称为HTTP方法(HTTP method)。
状态码:每条HTTP报文响应是都会携带一个状态码,状态码是一个三位数数字,告知客户端请求是否成功,或者是否需要采取其他动作。
web页面可包含多个对象:应用程序完成一项任务是通常会发布多个HTTP事务。浏览器会执行一个事务来获取描述页面的HTML“框架”,然后发布另外的HTTP事务来获取嵌入式图片,图像面板,程序文件等。这些资源可能位于不同的服务器上。一个Web页面通常不是单个资源,而是一组资源的集合。
报文
HTTP报文:由一行行的字符串组成,都是纯文本,不是二进制代码。HTTP报文包含三个部分,起始行,首部字段,主体。
HTTP报文
请求报文
响应报文
连接
TCP/IP
HTTP协议:是应用层协议,是基于因特网传输协议TCP/IP的。
TCP协议
TCP协议特点
1基于流的方式;
2.面向连接;
3.可靠通信方式;
4.在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销;
5.通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点;
连接,IP地址和端口
浏览器连接处理过程
1.浏览器从URL中解析出服务器的主机名;
2.浏览器将服务器的主机名转换成服务器的IP地址;
3.浏览器将端口号(如果有的话)从URL中解析出来;
4.浏览器建立一条与Web服务器的TCP连接;
5.浏览器向服务器发送一条HTTP 请求报文;
6.服务器向浏览器回送一条HTTP响应报文;
7.关闭连接,浏览器显示文档;
IP地址和端口
[1] 直接使用机器IP地址
http://207.200.83.29:80/index.html
[2] 使用域名加端口
http://www.netscape.com:80/index.html
[3] 仅使用域名省略端口(默认端口为80)
http://www.netscape.com/index.html
使用Telnet实例
Telnet与Web服务器:可以通过Telnet程序与Web服务器进行会话,实现Telnet与Web服务器进行交互。
Telnet与Web服务器交互的过程
1.找到域名所对应的IP
2.打开80端口
3.建立与Web服务器的TCP连接
4.进行HTTP事务
协议版本
HTTP/0.9
HTTP/1.0
HTTP/1.0+
HTTP/1.1
HTTP/2.0
Web的结构组件
Web的结构组件
代理:位于客户端和服务器之间的HTTP中间实体。
缓存:HTTP仓库,是常用页面的副本可以保存在离客户端更近的地方。
网关:连接其他应用程序的的特殊Web服务器。
隧道:对HTTP通信报文进行盲转发的的特殊代理。
Agent代理:发起自动HTTP请求的半智能Web客户端。
URL与资源
浏览因特网资源
URL分为三部分: <scheme>://<主机>/<路径>
第一部分是URL方案(scheme),方案可以告知Web客户端怎样访问资源。
第二部分是服务器位置(www.joes-hardware.com),这部分可以告知Web客户端资源位于何处。
第三部分是资源路径(/seasonal/index-fall.html),资源路径说明了请求的是服务器上哪个特定的本地资源。
URL语法
URL通用语法
<scheme>://<user>:<password>@<host>:<port>/<path>:<params>?<query>#<flag>
scheme:数据传输的方案即协议
user:用户名
password:密码
host:主机名
port:端口号
path:资源路径
params:参数
query:查询字符串
flag:定位页面的具体内容位置
方案
方案:实际是规定如何访问指定资源的主要标识符,它会告诉负责解析URL的应用程序应该使用什么协议。
方案组件
以一个字母符号开始,有第一个:符号将其余URL的其余部分分隔开。
方案名是大小写无关的即http://www.baidu,com 和 HTTP://www.baidu.com是等价的
主机和端口
用户名和密码