httpd服务归纳:网络服务基础篇

一、网络传输基础

    1. 套接字:两类 

        1) Unix Sock: 一种本地文件系统 

        2) Socket: IP port (IP:port或IP.port) 

    2. 传输层协议: 

        1) 有链接的协议:TCP 

        2) 无连接的协议: UDP 

    3. 套接字类型: 

        1) TCP 套接字 

        2) UDP 套接字 

        3) raw 套接字
    4. C/S(client / server)模型:包含以下两部分

        1) 通信子网:传输层协议 

        2) 应用层协议: 如:http, https, smtp, pop, imap, ftp, ldap 

二、 HTTP协议介绍: 

    1. http: hypertext transport protocol (超文本传输协议,最早用来传输html文档)

    2. html: hypertext mark language (超文本标记语言)

    3. Client: Browser   

    4. Server: http Server  
    5. html格式的文件和CSS(Cascading Style Sheet)样式表

<html>
		<head>
			<title></title>
		</head>
		<body>
			<h1></h1>
				<p></p>
			<h2></h2>
				<p></p>
		</body>
</html>

    6. 关于动态页面: 需要在服务器端或者客户端运行脚本

    7. 一个页面中:可能会包含多个页面对象,使用URL和URI标记

        1) URI: Uniform Resource Indentifier 

        2) URL: Uniform Resource Locator 

三、 关于HTTP协议与服务; 

    1. 协议版本

        http/0.9: 1991, 仅用于传输html文档 

        http/1.0: 支持多媒体数据的处理,使用keep-alive机制,有缓存功能

        http/1.1: 拥有更多请求方法,更加精细的缓存控制,拥有持久连接 

    2. http协议特点: 

        是一种无状态协议(stateless)协议 ,一次HTTP驶入结束后,连接即行断开 

        加速方式:

            并行请求

            持久连接     

四、 HTTP报文: 

    1. HTTP事务:一次请求以及与其对应的响应 

    2. HTTP方法:GET, PUT, HEAD, POST(递交表单),DELETE 

    3. HTTP请求: request 

        HTTP请求报文: 

        报文格式: 

            <method><request-URL><version>
            <headers>
            ## 空两行
            <entity-body>

        HTTP响应:response

            HTTP响应报文: 

         报文格式: 

            <version><status><reason-phrase>
            <headers>
            ## 空两行
            <entity-body>

    4. 各元素的含义:  

       <method>: 请求方法, 希望服务器端执行的动作,如GET、HEAD、POST等

       <request-url>: 请求的资源,可以是相对路径,也是完整的URL

       <version>:协议版本,格式HTTP/<major>.<minor>,如http/1.0

       <headers>:HTTP首部

       <status>: 状态码

       <reason-phrase>:原因短语,数字状态码易读信息

       <entity-body>: 主体部分

     5. 首部 

        1) 通用首部:请求和响应都可以使用的首部 

        2) 请求首部 

            Client-IP: 客户端IP, 此时是应用层,所以还需要指

            Host: 请求的主机名和端口号,虚拟主机环境下用于不同的虚拟主机

            Referer: 请求当前资源的上一级URL

            User-Agent: 用户代理,使用什么工具发出的请求

            Accept请求首部: 用户表明客户自己更倾向于支持的能力

                Accept: 指明服务器能发送的媒体类型

                Accept-Charset: 支持使用的字符集

                Accept-Encoding: 支持使用的编码方式 

                Accept-Language: 支持使用的语言 

            条件请求首部: 

                Expect: 

                If-Modified-Since: 是否在指定时间以来修改过此资源 

                If-None-Match: 与扩展标签相关

            跟安全相关的请求首部: 

                Authorization: 客户端提交给服务端认证数据,如账号和密码 

                Cookie/Cookie2:  客户端发送给服务器端的身份标识 

        3) 响应首部

             Age: 响应持续的时间

             Server: 服务器向客户端表明,服务器程序名称版本

             协商相关响应首部: 

                Accept-Ranges: 对当前资源来说,服务器所能够接受的范围类型 

                Vary: 首部列表,服务器会根据列表中内容挑选出最适合的版本发给客户端 

             跟安全相关的响应首部; 

                Set-Cookie/Set-Cookie2: 服务器端在某客户端第一次请求时,发给的的令牌 

                WWW-Authentication: 质询,要求客户端提供账号和密码 

        4) 实体首部:用于指定实体属性

            Location: 资源的新位置 

            Allow: 允许对此实体请求的方法 (回应options请求)

            内容相关实体首部: 

                Content-Encoding: 编码格式 

                Content-Language: 编码语言 

                Content-Length: 长度 

                Content-Location: 资源重定向时候使用

                Content-Range: 内容范围 

                Content-Type: 类型 

            缓存相关内容首部:

                ETag: 实体标签

                Expires: 过期期限 

                Last-Modifed: 上一次的修改时间 

        5) 扩展首部:非标准首部,可能是由程序开发者创建 

     6. HTTP请求方法: 

        GET: 请求获取一个资源,需要服务器发送 

        HEAD: 跟GET 形似,但其不需要服务器发送资源,只传回响应首部即可 

        POST: 支持HTML表单提交,表单中包含用户填入的数据,这些数据会发送到服务器端,由服务器存储至某个位置(例如发送处理程序)

        PUT:与GET相反,向服务器写入文档, 例如发布系统 

        DELETE: 请求删除URL指向的资源 

        OPTIONS: 探测服务器端对某自愿所支持的请求方法 

        TRACE:跟踪请求要经过的防火墙,代理或者网关 

     7. HTTP状态码:

        1xx: 信息性状态码

        2xx:成功状态码

            200: OK

            201: Created

        3xx:重定向状态码

            301:Moved Permanently, 在响应报文中使用首部“Location: URL”指定资源现在所处的位置;

            302:Found, 在响应报文中使用首部“Location: URL”指定临时资源位置;

            304:Not Modified, 条件式请求中使用;

        4xx:客户端类的错误 

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

            404:Not Found,服务器无法找到请求的URL

            405:Method Not Allowed,不允许使用此方法请求相应的URL

        5xx:服务器类的错误

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

            502:Bad Gateway,代理服务器从上游收到了一条伪响应;

            503:Service Unavailable,服务器此时无法提供服务,但将来可能可用;

五、一次web请求的基本过程 

web service.jpg

1. 建立连接

2.  接收请求

3. 处理请求

4. 访问资源

5. 构建响应

6. 发送响应

7. 记录日志


六、Web服务器输入/输出结构:

    1.  单线程I/O结构

    2.  多线程I/O结构

    3.  复用的I/O结构:单个线程响应多个请求

    4.  复用多线程I/O结构:多个线程,每个线程响应多个请求

原创文章,作者:以马内利,如若转载,请注明出处:http://www.178linux.com/3718

(0)
以马内利以马内利
上一篇 2015-05-04
下一篇 2015-05-04

相关推荐

  • 马哥教育网络班21期-第九周课程练习

    第九周作业 1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # declare -i nologin=0 declare -i other=0   &n…

    Linux干货 2016-09-19
  • 萧田国给你五个2017GOPS北京站的参会理由!

    2017年7月28日,GOPS全球运维大会即将开幕,发起人萧田国将在主会场发表题为《运维如何延续自己的职业生涯》演讲,参加第七届北京站您会有哪些收益? 收益一: 【长达半天时间的培训式演讲】让您系统性掌握顶级互联网自动化运维体系 收益二: 【腾讯智能运维】传奇背后的细节,听了才知道 收益三: 与Facebook、Twitter、BATJ等运维大咖【面对面深度…

    Linux干货 2017-07-24
  • 马哥linux0803作业内容

    1. 创建sysadmins组 将用户user1,user2,user3加入sysadmins组中 将user3设置为sysadmins的管理员 用user3登录,将user2从组中移除 设置sysadmins的密码centos 设置user1 在创建新文件时,文件的所属组为sysadmins 删除user1…3 删除sysadmins 2、三种权限rwx对…

    Linux干货 2016-08-05
  • PHP进阶知识总结

    周末梳理了下这段时间看书的一些知识点,进步的过程不仅要实践,还要安排多看书、思考、总结。 只针对知识点进行了罗列和简单说明,很多细节还未整理好,待后面再专门详细写。   基础易忽略概念   PHP是一个支持面向对象开发的语言,而不是一个纯面向对象的语言 PHP5中保留了对var的支持,但会将var自动转换为public 类型检查函数: i…

    Linux干货 2015-03-10
  • Linux添加swap交换分区

    添加swap交换分区 SWAP即交换分区是一种类似于Windows系统虚拟内存的功能,将一部分硬盘空间虚拟成内存来使用,从而解决内存容量不足的情况,因为SWAP毕竟是用硬盘资源虚拟的,所以速度上比真实物理内存要慢很多,一般只有当真实物理内存耗尽时才会调用SWAP。 1、创建一个分区,看上篇文章,别着急w保存退出 修改分区的类型输入t: Comman…

    Linux干货 2016-09-07
  • Linux运维实战之6:挂载/卸载磁盘分区

    上次博文我们具体讨论了Linux系统中磁盘的分区及格式化( http://www.178linux.com/60811),本次博文我们具体来说说分区的挂载哈! 【问题引入】 已经格式化好的分区如何与系统现有的文件系统建立关联(如何使用新分区)? 新的磁盘分区创建完成并格式化之后需要挂载(或装入)到目录树上才能被使用。 何谓挂载/卸载? 【答】将某个…

    Linux干货 2016-12-04

评论列表(1条)

  • stanley
    stanley 2015-05-04 18:08

    赞,tcp/ip数据流分析吊爆了