1、http定义
http:hypertext transfer protocol,超文本传输协议
超文本:带有超级链接的文本,基于这些链接,能够使得文档之间相互跳转
2、http版本:
(1)http 0.9版本:仅支持纯文本,仅支持GET方法
(2)http 1.0版本:除了GET方法,还支持PUT、POST、DELETE
GET:从远程服务器上直接获取文件到本地之后以浏览器的方式展示
PUT:从远程服务器直接获取文件到本地
POST:提交数据或表单到服务器上
DELETE:从远程服务器上删除文件
备注:http method有8种,分别是GET、PUT、POST、DELETE、HEAD(只返回首部,不返回主体内容)、TRACE、OPTIONS、CONNECTION,最常用的是前面4种
最大的改进是引进了MIME
MIME:Multipurpose Internet Mail Extension,多用途互联网邮件扩展,就是将非文本数据在传输前重新编码成文本格式,接收方能够用相反的将其还原成原来的格式,还能够调用相应的程序来打开此文件
备注:
a、通过协议首部告知接收方(也就是浏览器)自己的类型,然后浏览器在收到之后就会调用相关的插件来展示
b、早期的传输邮件是通过SMTP协议来传输的,只能传输纯文本,所以叫做简单文件传输协议。后来SMTP引进了MIME,所以现在邮件可以传输的不仅仅是纯文本,还有图片、mp3等
还引进了缓存的机制
缓存的意义:因为http是基于tcp传输的,tcp连接包含了3次握手、4次挥手,所以传输的时间会很久。此时缓存就可以加速你访问网页的速度,加速系统资源访问,还可以节省带宽。
其实页面刷新就是清除缓存,也就是无论本地缓存是否存在,都重新去服务端下载一次文件
(3)http 1.1版本:增强了缓存的功能,引进了长连接的功能
长连接:连接不断开,直到超时
好处:同一客户端发起第二个请求的时候,尽可能的缩短时间并降低服务端的资源利用率
坏处:服务器并发量巨大的时候,后面来的请求就很难建立连接。但是绝大多数情况下,如果你的连接请求不是大到一定请求的时候,使用长连接的方式可以显著的提高服务器的性能
3、http概念
(1)html:hypertext mark language,超文本标记语言(开发超文本的语言)
(2)URI:Uniform Resource Indentifier,统一资源标识符
(3)URL:Uniform Resource Locator,统一资源定位符(URI的子集)
(4)web资源:多个资源很可能会被整合为一个html文档,也叫web对象
(5)动态网页:服务端存储的文档非html格式,而是编程语言开发的脚本。客户端访问服务端的时候,会将自身浏览器的属性数据(比如ip、浏览器类型等)作为参数传给服务端的脚本,脚本接受参数之后在服务端执行一次。就动态语言来说,是什么类型的语言编写的脚本就调用相对应的解析器来解析。脚本执行完之后会生成html格式的文档发给客户端。不同的客户端获取的结果可能不一样。
备注:
a、动态网页不同于flash、java的applet所展示的动态效果(动态网页和动态效果不是同一个概念)
b、动态网页包括:
静态内容(不需要通过脚本执行,直接是一个文档或者是一张图片等等);
动态内容(需要脚本执行生成html文档之后返回客户端)
web监听方式(web服务器怎么知道有客户端来访问资源):以去饭馆吃饭举例
a、阻塞:阻塞的方式就是一直盯着饭菜有没有做好,不能去干别的事
b、非阻塞:非阻塞的方式就是在等菜的时候可以出去玩或者干别的事,过一段时间再回来看饭菜有没有做好,这种方式也叫轮询