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

相关推荐

  • rsyslog将日志记录于MySQL中

    数据库服务器:CentOS7 192.168.119.159   日志:CentOS6 192.168.119.129     准备mysql数据库 和 用户账户 [root@localhost ~]# yum install mariadb-server   [root@localhost ~]# systemctl…

    2018-02-05
  • Linux之高级文件系统管理

      Linux之高级文件系统管理       Linux高级文件系统管理包括以下内容   一, 磁盘配额quota管理二, 磁盘阵列RAID管理三, 逻辑磁盘LVM管理四, 磁盘LVM快照管理五, Btrfs文件系统管理         配置磁盘配额系统 在内核中执行以…

    Linux干货 2016-09-02
  • 【26期】Linux第六周学习小总结

        时光匆匆,一周时光悠然而逝,带给我们的只有知识的充实,和每日强大的自信心,学习的日益深入,慢慢的然我们的思绪和状态带回高中时光,吃饭上课睡觉三点一线的生活,枯燥中透露出稍微的晨曦,让每个明天都充满着期待,那我们的本周的学习中磁盘管理算是占了很大的比重,毕竟关于磁盘的知识很是难理解,那我就把本周的知识回顾温习,同时分享给大家。 &n…

    2017-08-19
  • Linux程序包管理

      Linux的各个release版本开发商,在发布各种应用程序,以及一些团体发布应用程序时,通常会根据发布的程序所适应的开发语言,使用环境,预设参数等,事先编译完成一个可以在相应平台上安装的程序包供使用者直接使用,该程序包含有安装前(preinstall)操作系统环境检测的脚本,程序包中所有文件的相关信息,程序预定义的配置参数文件,程序…

    Linux干货 2016-11-30
  • 初识Linux之——Linux是如何诞生的

    初识Linux之——Linux是如何诞生的 对于大多数初次接触Linux的童鞋,可能会非常好奇什么是Linux?它是做什么的?为什么那么多高手都喜欢Linux?Linux是如何产生出来的呢?本文将为大家解答释疑,让大家对Linux有一个清晰的概念。 Linux是什么 简单来说,如Windows7、Windows10、安卓、IOS等,Linux是一个计算机操作…

    Linux干货 2016-10-14
  • 系统基础之shell脚本编程详解及练习题

    shell脚本编程: 编程基础  程序:指令+数据 编程语言的分类:根据运行方式    编译运行:源代码–>编译器(编译)–>程序文件    解释运行:源代码–>运行时启动解释器,由解释器边解释边运行; 根据其编程过程中功能的实现是调用库还是调用外部的程序…

    Linux干货 2016-08-15