灰灰鼠精灵 发表于 2018-11-22 14:11:43

HTTP 报文格式及apache配置文件简介



一、http简介
http:hypertext transport protocol 超文本传输协议
Html:hypertext mark langguage :超文本标记语言
http协议的版本:
http/0.9: 1991,仅用于传输html文档
http/1.0: 支持多媒体数据的处理,keep-alive(保持连接),有缓存功能
http/1.1: 更多的请求方法,更精细的缓存控制,持久连接


二、HTTP报文
在客户端和服务器端进行通信的时候,通信双方在网络中发送请求和响应报文,双方的报文必须要遵循一定的格式相互发送。
http报文包括三个部分,起始行,首部字段和主体。
: 请求方法, 希望服务器端执行的动作,如GET、HEAD、POST等
: 请求的资源,可以是相对路径,也是完整的URL
:协议版本,格式HTTP/.,如http/1.0
:HTTP首部
: 状态码
:原因短语,数字状态码易读信息
: 主体部分1. 请求报文:request
报文格式:


2. HTTP响应:response
报文格式:



(图片摘自《HTTP权威指南》)
    还是举例验证一下吧,更加直观!
# telnet 172.16.0.1 80
Trying 172.16.0.1...
Connected to 172.16.0.1.
Escape character is '^]'.
GET /centos6.repo http/1.1 --{客户端request#方法/请求目录/协议版本
Host: 172.16.0.1 -------------------------#主机ip
HTTP/1.1 200 OK ----------{服务器端response#版本/状态码/结果及原因
Date: Thu, 22 Aug 2013 13:01:44 GMT-------#日期
Server: Apache/2.2.15 (CentOS) -----------#服务器信息
Last-Modified: Sat, 17 Aug 2013 10:06:13 GMT
ETag: "20de6-12d-4e421db6ce2c1"
Accept-Ranges: bytes
Content-Length: 301
Connection: close
Content-Type: text/plain; charset=UTF-8
------------------------------------#返回请求内容                              
name=CentOS $releasever $basearch on local server 172.10.0.1
baseurl=http://172.16.0.1/cobbler/ks_mirror/centos-6.4-$basearch/
gpgcheck=0

name=Fedora EPEL for CentOS$releasever $basearch on local server 172.16.0.1
baseurl=http://172.16.0.1/fedora-epel/$releasever/$basearch/
gpgcheck=0
Connection closed by foreign host.

3. 请求发出后,服务器返回响应的同时也会返回响应状态码。



4. HTTP首部
      首部和方法配合工作,共同决定了服务器和客户端能做什么事情。

5. 一次web请求的基本过程是 C建立连接-->S接受请求-->S处理请求-->S访问资源-->S构建响应-->S发送响应-->S记录日志。其中接受请求的这一步web服务器有三种输入输出结构,分别是 单线程I/O结构、多线程I/O结构、复用的I/O结构(单个线程响应多个请求)、复用的多线程I/O结构(多个线程,每个线程响应多个请求)。






三、httpd配置文件


如果是rpm包安装的http,配置文件在/etc/httpd/conf/httpd.conf
l
102-----------如果是perfork.c。则使用下边配置
103 StartServers       8----------启动时默认开启的进程数
104 MinSpareServers    5----------最小空闲线程数
105 MaxSpareServers   20----------最大空闲线程数
106 ServerLimit      256-----------最大活动进程数
107 MaxClients       256----------并发请求最大数
108 MaxRequestsPerChild4000----每个子进程生命周期内所能服务的最大请求个数
109



l Httpd 是高度模块化设计的,方便动态的装载和卸载模块。
  http -M 命令可以查看已经装载的所以DSO和非DSO模块
http -l :列出支持使用的非DSO模块
# httpd -M
Loaded Modules:
core_module (static)-----------------(static)非DSO模块
mpm_prefork_module (static)
http_module (static)
so_module (static)
auth_basic_module (shared)-------(shared)DSO模块
auth_digest_module (shared)
authn_file_module (shared)
.........如果我们不想使用某一个模块,只需要在配置文件中将其注释掉然后重启就可以了


  



  




页: [1]
查看完整版本: HTTP 报文格式及apache配置文件简介