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)
上一篇 2016-10-12 18:40
下一篇 2016-10-12 19:13

相关推荐

  • N25-第一周博客

      第一周博客作业内容 1.描述计算机的组成及其功能 2.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别 3.描述Linux哲学思想,并按照自己的理解对其进行解释性描述。 4.说明Linux系统上命令的使用格式:详细介绍,ifconfg,echo,tty,startx,export pwd,history,shutdown,powe…

    Linux干货 2016-12-03
  • 配置yum服务器——以centOS 6.9系统为例

    准备工作 关闭防火墙  关闭防火墙service iptables stop  设置防火墙开机不启动chkconfig iptables off  查看一下防火墙状态 iptables -vnL 如下图,可以看到已经关闭 关闭SElinux 使用命令 vim /etc/selinux/config 将SELINUX=enable…

    Linux干货 2017-08-05
  • 第三周作业

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

    Linux干货 2016-12-21
  • N26 – 第一周作业

    一、计算机组成及其功能     如图,计算机由硬件和软件组成。其中硬件可划分为控制器、运算器、存储器,以及输入和输出设备;软件则分为直接与硬件通信的系统软件,以及运行在其上的各类应用软件。      二、Linux发行版的不同系列     …

    Linux干货 2016-12-28
  • 第六周-Vim、计划任务及Shell脚本练习

    一、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysinit /tmp vim /tmp/rc.sysinit 末行模式输入 :%s@^[[:space:]]\+@#&@g 二、复制/boot/grub/grub.co…

    Linux干货 2017-08-13