http刚诞生是0.9的版本,只支持传输简单的文本文件。
一个html文件就是可以实现,将分散在多个或一个web服务器 上的资源整合成一个html页面,并用浏览器来显示的,这种语言就叫html语言。
服务器上有资源,称为web资源,也就是web对象
那如何获取上面的资源呢,复杂的讲,不但可以把远程服务器上的资源获取到本地,也可以交将本地的资源提交到服务器上,资源访问的手段不一样的,叫做资源获取方法,也就是http方法:
0.9版本只有一个方法:get
1.0后,有了put、delete,post、get,等八种,put和delete是相对的,从服务器获取/删除一个文件到本地,,
post和get是相对的,post提交表单到服务器,get把远程服务器上的资源获取到本地用浏览器展示的
这三种方法都不安全,因为都可以操作服务器上的资源,所以一般需要客户端认证。最安全的get,相当于只读的
1.0最大的改变是引入了MIME机制,多煤体互联网邮件扩展Multipurpose Mnternet Mail Extension
smtp:早期只能传输纯文本,后来可以传输mp3,等等二进制格式的,就是后来smtp引入了MIME机制,
MIME:将非文本数据在传输前重新编码为为文本文件,接收方能够用相反的方式将其重新还原为原来的格式,还能够多调用相应的程序打开此文件 ,如何是rar格式就用rar程序打开 ,这就是为什么浏览器可以打开以后可以传输各种各样的数据,
Base64就是一种编码格式,
动态网页:服务器端存储的文档非HTML格式,而是脚本、程序,
客户端申请的是php格式的文档时,服务器端根据它的扩展名来判断它不是一个html文件,它就不会立即响应客户端的访问,它会通过某种协议调用php解析器,
让它运行index.php文件,并把运行结果自身生成格式化html文档,把html文档发送给web服务器,web服务器发给客户端。
web服务器不执行脚本,它调用额外的工具,如index.php,它调用php解析器,让它运行php文件,并自身生成格式化html文档,
所以执行服务器脚本跟web服务器没有关系,web服务器它只是个http服务器,它并不负责处理动态内容。
一个web服务器响应如下图, 假设访问的是一个是html文件: