HTTP
HTTP协议(HyperText Transfer Protocol,超文本传输协议,它使用的是可靠地数据传输协议,用来沟通客户端和服务器的。
什么是资源
网络上的一切内容皆资源,无论是静态文件,还是动态生成的代码等!
什么是媒体类型
当 Web 浏览器从服务器中取回一个对象时,会去查看相关的 MIME 类型,看看它是否知道 应该如何处理这个对象
MIME 类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分隔。
• HTML 格式的文本文档由 text/html 类型来标记。
• 普通的 ASCII 文本文档由 text/plain 类型来标记。
• JPEG 格式的图片为 image/jpeg 类型。
• GIF 格式的图片为 image/gif 类型。
• Apple 的 QuickTime 电影为 video/quicktime 类型。
• 微软的 PowerPoint 演示文件为 application/vnd.ms-powerpoint 类型。
URI和URL、URN
首先URI从其概念来说是统一资源标识符,它的作用就是在网络上唯一确定一个资源,就好比,在中国,身份证能唯一确定一个人一样!知道身份证号,就一定能确定一个人姓甚名谁一样!它有两个子集:URL(统一资源定位符)和URN(统一资源名),首先不特别声明,我们所说的URI就是指URL,URL是跟资源其在网络上的位置有关!而URN是指资源跟其名字有关,URN是未来的趋势,不过貌似具体实施现在还在商讨中!所以短时间之内URN难以取代URL!URN 是作为特定内容的唯一名称使用 的
事务
一个 HTTP 事务由一条(从客户端发往服务器的)请求命令和一个(从服务器 发回客户端的)响应结果组成。这种通信是通过名为 HTTP 报文(HTTP message) 的格式化数据块进行的
方法
HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法
• GET 从服务器向客户端发送命名资源
• PUT 将来自客户端的数据存储到一个命名的服务器资源中去
• DELETE 从服务器中删除命名资源
• 将客户端数据发送到一个服务器网关应用程序
• HEAD 仅发送命名资源响应中的 HTTP 首部
报文
http协议一种纯文本的数据格式,分为请求报文和响应报文,两种报文都具有类似的结构,分别由三个部分构成:起始行、首部、主体
• 起始行 报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说 明出现了什么情况。
• 首部字段 起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为 了便于解析,两者之间用冒号(:)来分隔。首部以一个空行结束。添加一个首 部字段和添加新行一样简单。
• 主体 空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括 了要发送给 Web 服务器的数据;响应主体中装载了要返回给客户端的数据。起 始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意 的二进制数据(比如图片、视频、音轨、软件程序)。当然,主体中也可以包含 文本。
TCP/IP
HTTP 是个应用层协议。HTTP 无需操心网络通信的具体细节;它把联网的细节都
交给了通用、可靠的因特网传输协议 TCP/IP。
HTTP 应用层
TCP 传输层
IP 网络层
在一次网络请求中,分别经历那些过程
1.浏览器从url中解析处服务器的主机名;
2.浏览器将服务器的主机名转换成服务器的的ip地址;(可能经过去dns服务器查询)
3.浏览器将端口号(如果有的话)从url中解析出来;
4.浏览器建立一条与web服务器的tcp连接;
5.浏览器向服务器发送一条http请求报文;
6.服务器向浏览器回送一条http响应报文;
7.关闭连接,浏览器显示文档
http协议有哪些版本?
1.http/0.9,这个版本有严重设计权限
2.http/1.0,广泛使用
3.http/1.0+ 非官方的http/1.0的扩展版本
4.http/1.1 目前正在使用的版本,修复的相关设计缺陷,增加的相关特性
5.http-NG 将来使用与否正在商讨中
web中的一些结构组件
1.代理:代理位于客户端和服务器之间,接收所有客户端的HTTP请求,并把这些请求转发给服务器(可能会对请求进行修改之后转发)。对用户来说,这些应用程序就是一个代理,代表用户访问服务器。代理的主要作用有过滤、屏蔽等!(还有需要注意一点:代理既可以代表服务器对客户端进行响应,又可以代表客户端对服务器进行请求!)
2.缓存:首先说明一下,缓存某种意义上来说也是一种代理服务器。它主要使用代表服务器对客户端进行响应。发送预先缓存好的资源的副本。这样会加快事务响应速度、同时也会减少服务器的负载、减轻带宽等问题!
3.网关:网关是一种特殊的服务器,面对客户端时好像它就是服务器,而对于服务器,他又充当客户端的角色,它的主要作用是协议转换!例如HTTP/FTP网关。
4.隧道:就是一个连接通道,用于在http信道上发送非http协议的资源。
5.Agent代理:说白了就是我们平时所说的浏览器,以及web机器人、爬虫等!
网友评论