http: HyperText Transfer Protocol: 超文本传输协议

html: HyperText Mark Language:超文本标记语言。

request报文请求

response报文响应


报文传输过程:应用层协议发送get命令,ftp协议对get命令进行封装,报文传输到tcp层之后,在这一层为其添加目标端口和源端口,就标记了进程的地址,然后报文被送到ip层,再为其封装一个ip首部,就标记了源ip地址和目标ip地址,就能够找到目标主机。再通过链路层传送,最终通过物理层到达目的地。

报文接收:内核监控得知网卡接收报文,内核将报文进行处理,首先判断物理地址是否对应,对应了再看看目标ip地址是否对应,看完后再检查端口,这样就找到了对应的服务。

http版本:

   http/0.9: stateless 仅能响应文本

   http/1.0: MIME, keep-alive (保持连接), 缓存

   Multipurpose Internet Mail Extesions, 多功能,多用途互联网邮件扩展

   将非文本信息编码成二进制格式,由smtp进行传送,传送过去由浏览器解码查看。浏览器只能识别html格式的内容,所以还要调用外部的工具进行查看。或者浏览器自己有插件,这样也能查看内容了。

MIME:

   major/minor(主格式/次格式)

   p_w_picpath/jpg   jpg格式的图片

   p_w_picpath/gif   gif格式的图片

   text/html       纯文本格式

   video/quicktime   视频流

   appliation/x-httpd-php

http/1.1: 更多的请求方法,更精细的缓存控制,持久连接(persistent connection)

    URI: Uniform Resource Identifier:统一资源标识符

    URL:Uniform Resource Locator:统一资源定位符

 格式:scheme://[username:password@]HOST:port/path/to/source

     例如:http://www.magedu.com/downloads/nginx-1.5.tar.gz

  URN:统一资源命名符

HTTP事务:一个请求以及与其对应的响应报文

HTTP方法:

  GET: 完整请求一个资源

  HEAD: 仅请求响应首部

  POST:提交表单

  PUT: (webdav)

  DELETE:(webdav)

  OPTIONS:返回请求的资源所支持的方法的方法

  TRACE: 追踪一个资源请求中间所经过的代理

HTTP缓存机制:  私有缓存 和 公共缓存

HTTP的响应码:

   1xx: 信息性状态码

        100, 101

   2xx: 成功状态码

        200:OK

   3xx: 重定向状态码

        301: 永久重定向, Location响应首部的值仍为当前URL,因此为隐藏重定向;

        302: 临时重定向,显式重定向, Location响应首部的值为新的URL

        304:Not Modified:没有修改(在条件请求中用到)

   4xx: 客户端错误状态码

        404: Not Found

   5xx: 服务器端错误状态码

        500: Internal Server Error(服务器在执行、配置上有问题)

        502: Bad Gateway(任何一个代理找不到上一级的代理的时候)

        503:服务不可用

        504:Gateway Timeout:网关超时

HTTP报文格式:

    起始行

    首部:标签加上一个值。例如:Host: www.magedu.com

    主体

请求格式:request:

            <method> <request-URL> <version>

             请求方法    请求的URL    协议版本

            <headers>

               首部

            <entity-body>

                主体

#telnet 172.16.0.1 80 向172.16.0.1站点的80号端口发送请求

HTTP入门知识_ip地址

#telnet 172.16.0.1 80 向172.16.0.1站点的80号端口发送请求

HTTP入门知识_request_02

响应格式:response:

           <version> <status> <reason-phrase>

              版本     状态码    原因短语

           <headers>

                首部

           <entity-body>

              主体部分

version: HTTP/major.minor, 如HTTP/1.0

HTTP报文首部:

   通用首部:请求和响应均可使用:例如:

            Connection: 指定连接选项

            Date: 报文创建日期和时间

            Via: 所经过的代理服务器

   请求首部:

            Host: 所请求的主机

            Referer: 提供了包含当前请求URI文档的URL

            Accept: 接受的MIME类型

            Accept-Charset:所接受的字符集

            Accept-Encoding: 接受的编码方式

            Accept-Lanague: 告诉服务器能够发送哪些语言

   条件请求首部:

            If-Modified-Since

            If-None-Match

   安全请求首部:

            Authorization: 客户端提供给服务器的认证信息;

            Cookie: 追踪用户状态

            Cookie2:

   响应首部:

            Age: 从最初创建开始,响应持续时间

            Server: 服务器软件名称及版本

            Vary: 会影响缓存机制(是否压缩等)

            Set-Cookie:设定Cookie

            Set-Cookie2

   实体首部:

            Allow: 允许的请求方法

            Location: 资源的实际位置

            Content-Language: 内容是那种语言

            Content-Location: 内容位置

            Content-Type: 内容类型。例如:MIME

            ETag: 实体标记

            Expires: 过期的缓存

            Last-Mofified:上次修改的时间

一次HTTP事务的完成过程:

1、建立连接

2、接收请求

3、处理请求

4、获取资源

5、构建响应

6、回送响应

7、记录日志


高度模块化: DSO(动态共享对象)

MPM:Multipath Processing Module:多路处理模块

      prefork: 一个进程响应一个请求

      worker:一个进程生成多个线程,一个线程响应一个请求

      event:事件驱动模式

httpd:

    alias 路径别名

    Auth用户认证

    virtual host虚拟主机

    Mpm模块属性定义

版本:HTTP/0.9, HTTP/1.0, HTTP/1.1

httpd的相关信息:

    服务脚本:/etc/rc.d/init.d/httpd

    运行目录:/etc/httpd

    配置文件:/etc/httpd/conf/

    主配置文件:httpd.conf

    扩展配置:/etc/httpd/conf.d/*.conf

    监听端口socket: http: 80/tcp, https: 443/tcp

    网页文件目录(DocumentRoot)/var/www/html

    CGI: /var/www/cgi-bin/

安装并启动web服务

需要注意的是httpd的默认安装会试图通过反解当前主机的ip地址来为httpd服务器提供一个主机名称,如果反解是失败的它就会报错,所以为避免此问题,建议先编辑/etc/hosts

如:127.16.4.1    www.magedu.com    www           别名为www

安装httpd

   #service httpd start     

   #chkconfig --list httpd     #查看运行级别

   #chkconfig httpd on 

直接以127.16.4.1 访问的时候,显示的是测试页面,即默认的主页面。我们编辑/var/www/html/index.html文件,这样我们打开的就是我们所编辑的内容了。

如果我们不对/var/www/html/index.html文件进行编辑,又不想显示欢迎界面,那就需要修改配置页面了。

(1)在/etc/httpd/conf/httpd.conf中修改

(2)将/etc/httpd/conf.d目录下的welcome.conf删除或文件名改变

配置httpd的工作属性:vim /etc/httpd/conf/httpd.conf

配置文件的构成:主服务器和虚拟主机不能同时启用

   全局配置:对主服务器或虚拟机都有效,且有些功能是服务器自身工作属性;

   主服务器:主站属性;

   虚拟主机:虚拟主机及属性定义

配置文件语法测试:

    # service httpd configtest 检查语法是否有错误

    # httpd -t

           #service httpd reload                 重新加载配置

    #service httpd restart    重启服务