1. MIME(Multipurpose Internet Mail Extension,多用途互联网邮件扩展)
它是SMTP能够传输非文本格式文件的根源,将他引入到HTTP,那么HTTP也可以传输图片声音等非文本格式的文件,所以他也是HTTP可以传输非文本格式文件的根源。
将非文本数据在传输数据前重新编码为文本格式,接收方能够用相反的方式将其重新还原为原来的格式,还能够用相应的程序来打开。
2.flash,Applet(Java中),
Flash也是一种变成语言。可以有动态网页。
3.动态网页
服务器端存储的文档非HTML格式,而是编程语言开发的脚本。将Browser的参数传递给脚本,在服务器上执行一下,运行完成之后会生成html文档,这是临时生成的,并且将生成的文档发送给Browser。
4.php
.php不是一种纯文本文件,它是web服务器是web服务器根据一种协议运行.php文件生成html文件,发送给Browser。
5.缓存
http1.0引入了缓存了概念。简单来说就是用于存储之前浏览过的信息,比如说前进后退读取页面的速度很快,其实就是从缓存中读取的。将好多的内容直接缓存在本地中。刷新,是不管本地有没有缓存都会重新读取。所以不要没事别去刷新,那会增加你的流量。当然,你要是访问了不可见人的网站还是要清理一下的。
6.访问web的流程
将URL解析成IP(通过DNS服务器),这样就相当于在Browser中输入了IP。这样才继续向web服务器发送请求。服务器监听在某个端口。
7. http报文+TCP头+IP数据包包头。这里说一下http报文
http报文分为:请求报文、响应报文。
请求报文包括方法method、主机host、version、connection、head、body等等;
响应报文包括version、status状态码(1**纯信息、2**成功、3**重定向、4**客户端错误信息404表示请求了一个不存在的文件、5**服务器端错误信息)、reason-phrase(解释用)、headers、entity-body。
8.一个原生态的web服务器是不会解析动态网页的,解析是由一个特定的进程解析之后给web服务器再发送出去。
9.长连接
每一次获取一个资源就要四次握手断开,再下载又要三次握手。长连接就是在获取一个资源后不要立即断开,但是对于访问量很大的服务器会不好,因为其他的进程不会一直等着。
(空闲)超时断开。最多只允许获取多少对象。
长连接对于服务器的影响是非常大的。
10.多线程于单线程模型服务器
当很多进程请求的时候,单线程就是一个一个服务。多线程就是服务进程产生与他一样的进程,这个进程来服务一个进程,其他的请求也这样处理,这就是多线程服务器。
11.一个进程处理n个请求的服务器
每个请求有自己的状态,甚至可以向进程告知我已经获得了自己的资源对象。
12.多进程+每个进程可以处理多个请求的服务器
上面的10、11、12都是讲的是服务器的处理模型。
13.资源的获取方法HTTP METHOD
GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECTION
14.Client、Server
Client:IE、Firefox、Chrome、Opera、Safari
Server:Apache(httpd)、IIS、nginx、lighttpd、thttpd等等
应用程序服务器(不但可以处理静态的还可以在服务器内部处理动态的请求):IIS、tomcat(Apache,开源的,JSP)、Websphere(IBM,JSP)、Weblogic(Oracle)、JBoss(RedHat)
15.Apache (A Patchy Server之前一个戏称,后来就叫做Apache)
16.虚拟主机
它只有一个物理主机。虚拟主机的方法:基于IP的虚拟主机,基于端口的虚拟主机,基于域名的虚拟主机。