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
下一篇 2016-10-12

相关推荐

  • 树 非线性结构 树是n(n >= 0)个元素的集合: (1)每个元素称为结点(node); (2)有一个特定的结点,称为根结点或根(root); (3)除根结点外,其余结点被分成m(m>=0)个互不相交的有限集合,而每个子集又都是一棵树(称为原树的子树Subtree) 注意 n = 0时,称为空树 树只有一个特殊的没有前驱的元素,称为树的根(Ro…

    2017-10-16
  • Linux磁盘与文件系统管理的一些命令

    fdisk fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区。它采用传统的问答式界面,而非类似DOS fdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣。 输入m列出可以执行的命令 p:显示磁盘分区表 n:new,新建分区 d:delete,删除分区 t:更改系统类型 l:列出已知分区类型 w:保存并退出 q:不保存退出…

    Linux干货 2017-04-23
  • Linux运维利器之ClusterShell

    Via:http://blogread.cn/it/article/4573?f=wb 如果你有若干台数据库服务器,突然你想知道它们当前的即时负载情况,你会怎么办?挨个登录上去uptime一下?感觉有点傻,写个shell?浪费时间,直接用ClusterShell吧! ClusterShell的安装与配置     Clu…

    Linux干货 2015-05-12
  • 马哥教育网络班22期+第8周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:是连接两个局域网的基于MAC地址数据存储转发设备,工作于数据链路层 集线器:所有端口处于同一个广播域和冲突域中,带宽共享,工作于物理层 二层交换机:多端口网桥,一个端口一个冲突域,默认所有端口位于同一个广播域中,可以划分vlan,隔离广播域,带宽独享 三层交换机:具有路由功…

    Linux干货 2016-10-17
  • 网络管理命令

    linux网络属性     ifconfig命令家族:ifconfig,route,netstat ifconfig命令:接口及地址查看和管理     ifconfig [interface]:     ifconfig -a:显示所有接口…

    Linux干货 2016-09-13