httpd——事务

http协议:

http/0.9 ,http/1.0 ,http/1.1 ,http/2.0

http协议:stateless

         服务器无法持续追踪访问者来源

             cookie,session

http事务:

         请求:request

         响应:response

报文语法格式:

         request报文

                 <method> <request-URL> <version>

                 <headers>

                

                 <entity-body>

                     有可能为空,在请求报文中

         response报文

                 <version> <status> <reason-phrase>

                 <headers>

                

                 <entity-body>

         method:请求方法,标明客户端希望服务器对资源执行的动作

             GET、HEAD、PUT、POST、DELETE

         version:通信协议的版本

             HTTP/<major>.<minor>

         status:通信返回状态码

             三位数字:如200,301,302,404,502;标记请求处理过程中发生的情况

         reason-phrase:

             状态码所标记的状态的简要描述

         headers:

             每个请求或响应报文可包含任意个首部:每个首部都有首部名称,后面跟一个冒号,而后跟上一个可选空格,接着是一个值

         entity-body:

             请求时附加的数据或响应时附加的数据

method(方法):

         GET:从服务器获取一个资源

         HEAD:只从服务器获取文档的响应首部

         PUT:将请求的主体部分存储在服务器上

         POST:向服务器发送要处理的数据

         DELETE:请求删除服务器上指定的文档

         TRACE:追踪请求到达服务器中间经过的代理服务器

         OPTIONS:请求服务器返回对指定资源支持使用的请求方法

协议查看或分析工具:

    tcpdump、tshark、wireshark

status(状态码):

         1xx:100-101,信息提示

         2xx:200-206,成功

         3xx:300-305,重定向

         4xx:400-415,错误类信息,客户端错误

         5xx:500-505,错误类信息,服务器端错误

常用状态码:

         200:成功,请求的所有数据通过响应报文的entity-body部分发送:OK

         301:请求的URL指向的资源已经被删除;但在响应报文中通过首部Location指明了资源现在所处的新文字:Moved Permanently

         302:与301相似,但在响应报文中通过Location指明资源现在所处临时新位置:Found

         304:客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过响应此响应状态码通知客户端:Not Modified

         401:需要输入帐号和密码认证方能访问资源:Unauthorized

         403:请求被禁止:Forbidden

         404:服务器无法找到客户端请求的资源:Not Found

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

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

headers:

         格式:

                 Name:Value

                

                 Accept:image/webp,image/*,*/*;q=0.8

                 Accept-Encoding:gzip, deflate, sdch, br

                 Accept-Language:zh-CN,zh;q=0.8

                 Connection:keep-alive

                 Host:ss3.bdstatic.com

                 Referer:https://www.baidu.com/?tn=78040160_5_pg&ch=1

                 User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36

                

                 Accept-Ranges:bytes

                 Age:1889089

                 Cache-Control:max-age=2592000

                 Connection:keep-alive

                 Content-Length:1504

                 Content-Type:image/png

                 Date:Fri, 07 Oct 2016 04:34:08 GMT

                 ETag:"55648df6-5e0"

                 Expires:Sat, 15 Oct 2016 07:49:18 GMT

                 Last-Modified:Tue, 26 May 2015 15:15:02 GMT

                 Ohc-Response-Time:1 0 0 0 0 0

                 Server:bfe/1.0.8.13-sslpool-patch

首部的分类:

         通用首部

         请求首部

         响应首部

         实体首部

         扩展首部

通用首部:

         Date:报文的创建时间

         Connection:连接状态,如keep-alive,close

         Via:显示报文经过的中间节点

         Cache-Control:控制缓存

         Pragma:

请求首部:

         Accept:通过服务器自己可接收的媒体类型

         Accept-Charset:允许接收的字符集

         Accept-Encoding:接收编码格式,如gzip

         Accept-Language:接收的语言

        

         Client-IP:

         Host:请求的服务器名称和端口号

         Referer:包含当前正在请求的资源的上一级资源

         User-Agent:客户端代理

         条件式请求首部:

                 expect:

                 If-Modified-Since:自从指定的时间之后,请求的资源是否发生过修改

                 If-Unmodified-Since:

                 If-None-match:本地缓存中存储的文档的Etag标签是否与服务器文档的Etag不匹配

                 If-match:

        

         安全请求首部:

                 Authorization:向服务器发送认证信息,如帐号和密码

                 Cookie:客户端向服务器发送cookie

                 Cookie2:

                

         代理请求首部:

             Proxy-Authorization:向代理服务器认证

响应首部:

         信息性:

                 Age:响应持续时长

                 Server:服务器程序软件名称和版本

        

         协商首部:某资源有多种表达方式时使用

                 Accept-Ranges:服务器可接收的请求范围类型

                 Vary:服务器查看的其它首部列表

                

         安全响应首部:

                 Set-Cookie:向客户端设置cookie

                 Set-Cookie;

                 WWW-Authenticate:来自服务器对客户端的质询认证表单

实体首部:

         Allow:列出对此实体可使用的请求方法

         Location:告诉客户端真正的实体处于何处

        

         Content-Encoding:编码格式

         Content-Language:使用的语言

         Content-Length:主体的长度

         Content-Location:实体真正所处位置

         Content-Type:主体的对象类型

        

         缓存相关:

                 ETag:实体的扩展标签

                 Expires:实体的过期时间

                 Last-Modified:最后一次修改的时间

原创文章,作者:megedugao,如若转载,请注明出处:http://www.178linux.com/50783

(0)
megedugaomegedugao
上一篇 2016-10-12 18:40
下一篇 2016-10-12 19:13

相关推荐

  • Xen虚拟化平台安装及实时迁移

    前言 Xen是英国剑桥大学计算机实验室开发的一个虚拟化开源项目,Xen可以在一套物理硬件上安全的执行多个虚拟机,它和操作平台结合的极为密切,占用的资源极少。以高性能、占用资源少著称,赢得了IBM、AMD、HP、Redhat和Novell等众多世界级软硬件厂商的高度认可和大力支持,已被国内外众多企事业用户用来搭建高性能的虚拟化平台。 Xen虚拟化类型 Xen对…

    Linux干货 2015-07-19
  • n25 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。   2、取出最后登录到当前系统的用户的相关信息。   3、取出当前系统上被用户当作其默认shell的最多的那个shell。   4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxus…

    Linux干货 2016-12-20
  • 常用的MySQL数据库备份

    常用的MySQL数据库备份方式 前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY LOG备份 使用lvm2快照备份数据 使用Xtrabackup备份 总结 前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可…

    2015-06-13
  • sed文本处理工具

    Sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转…

    Linux干货 2017-12-02
  • CentOS 7 yum安装LAMP,LNMP并搭建WordPress个人博客网站

    本次实验要进行的是在CentOS7.2,内核版本3.10.0-327.el7.x86_64的环境下搭建LAMP和LNMP,并在此之上做一个WordPress博客网站。 [root@Shining ~]# uname -a Linux Shining.ACG 3.10.0-327.el7.x86_64&nbsp…

    Linux干货 2016-11-24
  • N22-第5周博客作业

    1、显示当前系统上root、fedora或user1用户的默认shell; grep -E "^(root|fedora|user1)\>" /etc/passwd | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某单…

    Linux干货 2016-12-05