Web服务及http协议_学习笔记


    HTTP:HyperText Transfer Protocol(超文本传输协议)

        超文本是携有超链接的文本,即超链接

        Web:

          Web服务器的主要操作:

            1、建立连接———接收或拒绝客户端的连接请求

            2、接收请求———通过网络读取HTTP请求报文

            3、处理请求———解析请求报文并作出相应的动作

            4、访问资源———访问请求报文中的相关资源

            5、构建响应———使用正确的首部生成HTTP响应报文

            6、发送响应———向客户端发送生成的响应报文

            7、记录日志———当已完成的HTTP事物记录进日志文件


            http/0.9    仅支持纯文本(超链接),ASCII

            HTML:    HyperText Mark Language(超文本标记语言)

                URI:Uniform    Resource Indentifer(统一资源定位符),用来标记全局内唯一的资源访问路径

                    统一:格式上的统一

                URL:Uniform    Resource Locator(统一资源定位符),用于标示互联网上资源的标识符

                    Protocol://Host:port/path/to/file  

            HTTP方法:

                Get(0.9):从远程服务器上获取文件到本地展现

                Put:从远程服务器上获取文件

                Post:通过表单提交数据到服务器上

                Delete:从远程服务器上删除文件

                Head:

                Trace:

                Options:

                Connection               


            MIME:Multipurpose Internet Mail Extension(多功能互联网邮件扩展)

                SMTP:Simple Mail Transmission Protocol(简单邮件传输协议)

                    MIME:将非文本数据在传输前重新编码问文本格式,接收方可以使用相反的方法还原为原

                                    来的格式,还可以调用相应的程序打开此文件

                        Base64:文本编码格式

                动态网页:服务器存储的网页非html格式,而是编程语言开发的脚本

           HTTP的报文类型:请求报文、响应报文

            起始行

            报文首部

            报文主体


                请求报文语法:

                    <method><request-URL><version>

                    <headers>

            

                    <entity-body>报文主体

                响应报文语法:

                    <version><status><reason-phrase>

                    <headers>


                    <entity-body>

                    例:

                      请求报文:

                        GET / HTTP/1.1

                        Host:    www.baidu.com

                        Connection:    keep-alive


                        响应报文:

                           HTTP/1.1 200 OK

                            X-Powered-By:    PHP/5.2.17

                            Vary:    Accept-Encoding,Cookie,User-agent

                            Cache-Control:    max-age=3,must-revalidate

                            Content-Encoding:gzip

                            Content-Lenhth:6931

                    状态码:

                        1xx:纯粹的信息

                        2xx:成功类的状态信息

                            200:正常响应

                        3xx:重定向的信息

                            301:永久重定向(告知客户以后就去指定的位置获取资源)

                            302:临时重定向(因自身负载过重,告知客户端可以到另外的一个地方获取资源)

                            304:告诉客户当前资源没有发生改变,可以直接使用本地的缓存

                        4xx:客户端错误

                            404:请求的资源不存在

                        5xx:服务器端错误

                    长连接:一直保持请求的连接

                      限制:

                        空闲超时:如果连接处于空闲,那么会有超时时间限制

                        最大连接请求数:客户如果一直有请求,那么会限制客户端的请求数。

          

            Web服务器处理模型:

                单进程/单线程服务器模型:

                多进程/多线程服务器模型:

                    主进程生成子进程,由子进程处理客户端请求

                        缺点:在请求过多的情况下会非常耗费资源

                单进程响应多请求:

                    同时处理多个请求

应用程序服务器
Client
Server
IIS
IE
httpd
tomcat(apache,JSP,Open Source)
FirefoxIIS
Websphere(IBM,JSP,商业产品)
Chrome
nginx
Weblogic(Oracle,JSP,商业)
Opera
lighttpd
JBOSS(Redhat)
Safari
thttp


                    事件驱动机制

                    状态转换通知

                多进程响应多请求:主进程+多进程(同时处理多个请求):

                    主进程主要用来调度请求给副进程,副进程主要用来处理请求,并且可以同时处理多个请求

                httpd MPM响应模型:

                    perfork

                    work

                    event