关于HTTP协议深入理解(2)

服务端开启一个进程,但是呢,同时开启多个线程,一个线程响应一个请求,同样可以达到同时处理多个请求,线程间并发执行;

        复用多线程I/O模型

服务端并行开启多个进程,同时每个进程开启多个线程,这样服务端可以同时处理进程数M*每个进程的线程数N个请求。

三、HTTP报文格式

        HTTP报文是HTTP应用程序之间传输的数据块,HTTP报文分为HTTP请求报文和HTTP响应报文,但是无论哪种报文,他的整体格式是类似的,大致都是由起始、首部、主体三部分组成,起始说明报文的动作,首部说明报文的属性,主体则是报文的数据。接下来具体说明。

3.1 HTTP请求报文

关于HTTP协议深入理解

     

        请求报文的起始由请求行构成(有些资料称为状态行,名字不一样而已,都是指的一个东西),用来说明该请求想要做什么,由<Method>、<URL>、<Version> 三个字段组成,注意每个字段之间都有一个空格。

        其中<Method>字段有不同的值:

                GET   --- 访问服务器的资源

                POST  --- 向服务器发送要修改的数据

                HEAD  --- 获取服务器文档的首部

                PUT   --- 向服务器上传资源

                DELETE--- 删除服务器的资源

        <URL>字段表示服务器的资源目录定位

        <Version>字段表示使用的http协议版本

        首部部分由多个请求头(也叫首部行)构成,那些首部字段名有如下,不全:

                Accept     指定客户端能够接收的内容格式类型

                Accept-Language 指定客户端能够接受的语言类型

                Accept-Ecoding  指定客户端能够接受的编码类型

                User-Agent      用户代理,向服务器说明自己的操作系统、浏览器等信息

                Connection      是否开启持久连接(keepalive)

                Host           服务器域名

                ...

        主体部分就是报文的具体数据。                     

3.2 HTTP响应报文

关于HTTP协议深入理解

     

        响应报文的起始由状态行构成,用来说明服务器做了什么,由<Version>、<Status-Code>、<Phrase>三个字段组成,同样的每个字段之间留有空格;

        <Status-Code> 上边已经说明; 

        首部由多个响应头(也叫首部行)组成, 首部字段名如下,不全:

                Server    服务器软件名,Apache/Nginx

                Date      服务器发出响应报文的时间

                Last-Modified   请求资源的最后的修改时间

                ...

        主体部分是响应报文的具体数据。

四、HTTP协议版本更替

HTTP/0.9

        HTTP协议的最初版本,功能简陋,仅支持请求方式GET,并且仅能请求访问HTML格式的资源

HTTP/1.0   

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/111551fb7048b376efe77d747b2061ec.html