Apache功能和网站的基础结构

MIME

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义文件名,以及一些媒体文件打开方式。

它是一个互联网标准,扩展了电子邮件标准,使其能够支持:

非ASCII字符文本;非文本格式附件(二进制、声音、图像等);由多部分(multiple parts)组成的消息体;包含非ASCII字符的头信息(Header information)。

这个标准被定义在RFC 2045、RFC 2046、RFC 2047、RFC 2048、RFC 2049等RFC中。 MIME改善了由RFC 822转变而来的RFC 2822,这些旧标准规定电子邮件标准并不允许在邮件消息中使用7位ASCII字符集以外的字符。正因如此,一些非英语字符消息和二进制文件,图像,声音等非文字消息原本都不能在电子邮件中传输(MIME可以)。MIME规定了用于表示各种各样的数据类型的符号化方法。 此外,在万维网中使用的HTTP协议中也使用了MIME的框架,标准被扩展为互联网媒体类型。

作用:MIME意为多目Internet邮件扩展,它设计的最初目的是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。
其实就是作为附件进行大数据传输!

http的请求方法

HTTP使用内容类型,是指Web服务器向Web浏览器返回的文件都有与之相关的类型。所有这些类型在MIME Internet邮件协议上模型化,即Web服务器告诉Web浏览器该文件所具有的种类,是HTML文档、GIF格式图像、声音文件还是独立的应用程序。大多数Web浏览器都拥有一系列的可配置的辅助应用程序,它们告诉浏览器应该如何处理Web服务器发送过来的各种内容类型。

HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:

(1) 建立TCP连接

在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80

(2) Web浏览器向Web服务器发送请求命令

一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令

例如:GET/sample/hello.jsp HTTP/1.1

(3) Web浏览器发送请求头信息

浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。

(4) Web服务器应答

客户机向服务器发出请求后,服务器会客户机回送应答,

HTTP/1.1 200 OK

应答的第一部分是协议的版本号和应答状态码

(5) Web服务器发送应答头信息

正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。

(6) Web服务器向浏览器发送数据

Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据

(7) Web服务器关闭TCP连接

一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码

Connection:keep-alive

TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

ssl和https的区别

Web服务器的工作模式

httpd协议是超文本传输协议,用于网络中传输动态和静态资源
httpd工作模式有三种:
1. Prefork: 每个进程响应一个请求;稳定性好,但并发能力有限,最多支持1024; 预先生成多个空闲进程;
2. Worker: 每个进程可生成多个线程,每个线程响应一个请求;预先生成多个空闲线程;
3. Event: 一个进程响应n个请求;可同时启动多个进程;httpd2.2 为测试版本,httpd2.4 为稳定版;

CGI:公共网关接口

CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。

Httpd返回的状态码

1)HTTP常见状态码。

1xx:信息性状态码

    100:请求继续

    101:转换协议

2xx:成功状态码

    200:ok,表示请求没有问题。

    201:created,创建服务器对象的请求。

    202:Accepted,请求已被接受。单服务器还未执行任何动作。

    203:Non-Authoritative Information,实体首部。

    204:No Content,响应报文中包含若干首部和一个状态行,但没有实体的主体部分。

    205:Reset Content,主要用于浏览器的代码,负责告知浏览器清除当前页面中的所有html表单元素。

    206:Partial Content,成功执行了一个部分或Range范围请求。

3xx:重定向状态码。

    301:move permanently,永久重定向,在响应报文中使用首部“location:URl”

    302:found,临时重定向,在响应报文中使用首部“location:URL”指定临时资源位置。

    303:not modified,条件是请求中使用。

    304:Not modified,客户端可以通过所包含的的请求首部,使其请求变成有条件的。

    305:Use Proxy,必须通过一个代理来访问资源。

4xx:客户端类的错误状态码。

    400:Bad Request,用于告知客户端它发送了一个错误的请求。

    401:Unauthorize 认证。

    402:Payment Required 保留还未使用。

    403:Forbidden,请求被服务器拒绝。

    404:not found,服务器无法找到请求的url。

    405:Method not allowed,不允许使用此方法请求响应的url。

    406:Not Acceptable,服务器于客户端没有可接受的url相匹配的资源。

    407:Proxy Authentication Required,对资源要求进程认证的代理服务器。

    408:Request timeout,请求超时的状态码。

    409:Conflict,请求资源时引发的一些冲突。

5xx:服务器端类的错误。

    500:Internal Server Error,服务器内部错误。

    501:Not Implemented,客户端发起的请求超出服务器的能力范围。

    502:Bad gateway,代理服务器从上游收到了一条假响应。

    503:Service Unavailable,服务器此时无法提供服务。