zoukankan      html  css  js  c++  java
  • Web-Attak系列教程第二季0x12讲——HTTP的请求与响应格式

    分享知识,分享快乐;收获友谊,收获财富。

    大家好,我是数字雨QQ:798033502

     

    主站:http://www.91duofanli.com/

    店铺:http://itbook.taobao.com/

     

    今天给大家带来的教程是《Web-Attak系列教程第二季0x12讲——HTTP的请求与响应格式

     

    本教程仅作教学演示和技术讨论,不得进行违法犯罪活动。

     

    HTTP的消息结构如图:

    一、请求格式

     

    1 通用头(general-header)
    Cache-Control:客户端希望服务端如何缓存自己的请求数据,如"Cache-Control: no-cache""Cache-Control: max-age=0"
    Connection:客户端是否希望与服务端之间保持长连接,如"Connection: close", "Connection: keep-alive"
    Date:只有当请求方法为POSTPUT方法时客户端才可能会有些字段;
    Pragma:包含了客户端一些特殊请求信息,如 "Pragma: no-cache" 客户端希望代理或应用服务器不应缓存与该请求相关的结果数据;
    Via:一般用在代理网关向应用服务器发送的请求头中,表明该来自客户端的请求经过了网关代理,
         格式为:"Via: 请求协议版本  网关标识   [其它信息] "
         如 :" Via: 1.1  webcache_250_199.hexun.com:80 (squid)"

     

    2 请求头(request-header)
    Accept: 表明客户同端可接受的请求回应的媒体类型范围列表。星号*用于按范围将类型分组,用*/*指示可接受全部类型;用type/*指示可接受 type类型的所有子类型,如“ Accept: image/gif, image/jpeg, */*
    Accept-Charset:客户端所能识别的字符集编码格式,格式:Accept-Charset: 字符集1[:权重],字符集2[:权重],如:“ Accept-Charset: iso-8859-5, unicode-1-1;q=0.8
    Accept-Language:客户端所能识别的语言,格式:Accept-Language: 语言1[:权重],语言2[:权重],如:” Accept-Language: zh, en;q=0.7
    Host:客户请求的主机域名或主机IP,格式:Host: 域名或IP[:端口号],如:Host: www.hexun.com:80,请求行中若有HTTP/1.1则必须有该请求头;
    User-Agent:表明用户所使用的浏览器标识,主要用于统计的目的;
    Referer:指明该请求是从哪个关联连接而来;

    Accept-Encoding:客户端所能识别的编码压缩格式,如:Accept-Encoding: gzip, deflate
    If- Modified-Since:该字段与客户端缓存相关,客户端所访问的URL自该指定日期以来在服务端是否被修改过,如果修改过则服务端返回新的修改后 的信息,如果未修改过则服务器返回304表明此请求所指URL未曾修改过,如:If-Modified-Since: Fri, 2 Sep 2006 19:37:36 GMT
    If-None-Match:该字段与客户端缓存相关,客户端发送URL请求的同时发送该字段及标识,如 果服务端的标识与客户端的标识一致,则返回304表明此URL未修改过,如果不一致则服务端返回完整的数据信息,如:If-None-Match: 0f0a893aad8c61:253, 0f0a893aad8c61:252, 0f0a893aad8c61:251
    Cookie:为扩展字段,存储于客户端,向同一域名的服务端发送属于该域的cookie,如:Cookie: MailUserName=whouse

     

    3 实体头(entity-header): (此类头存在时要求有数据体)
    Content-Encoding:客户端所能识别的编码压缩格式,如:Content-Encoding: gzip, deflate
    Content-Length:客户端以POST方法上传数据时数据体部分的内容长度,如:“ Content-Length: 24
    Content- Type:客户端发送的数据体的内容类型,如:Content-Type: application/x-www-form-urlencoded为以普通的POST方法发送的数据;Content-Type: multipart/form-data; boundary=---------------------------5169208281820,则表明数据体由多部分组成,分隔符为 -----------------------------5169208281820

     

    二、响应格式

     

    A, 通用头(general-header)
    Cache- Control:服务端要求中间代理及客户端如何缓存自己响应的数据,如Cache-Control: no-cache,如:Cache-Control: private” 不希望被缓存,Cache-Control: public” 可以被缓存;
    Connection:服务端是否希望与客户端之间保持长连接,如Connection: closeConnection: keep-alive
    Date:只有当请求方法为POSTPUT方法时客户端才可能会有些字段;
    Pragma:包含了服务端一些特殊响应信息,如 Pragma: no-cache” 服务端希望代理或客户端不应缓存结果数据;
    Transfer-Encoding:服务端向客户端传输数据所采用的传输模式(仅在HTTP1.1中出现),如:Transfer-Encoding: chunked,注:该字段的优先级要高于Content-Length 字段的优先级;

     

    B,响应头(response-header)
    Accept-Ranges:表明服务端接收的数据单位,如:Accept-Ranges: bytes
    Location:服务端向客户端返回此信息以使客户端进行重定向,如:Location: http://www.hexun.com
    Server:服务端返回的用于标识自己的一些信息,如:“ Server: Microsoft-IIS/6.0
    ETag:服务端返回的响应数据的标识字段,客户端可根据此字段的值向服务器发送某URL是否更新的信息;

     

    C实体头(entity-header): (此类头存在时要求有数据体)
    Content-Encoding:服务端所响应数据的编码格式,如:Content-Encoding: gzip
    Content-Length:服务端所返回数据的数据体部分的内容长度,如:“ Content-Length: 24
    Content-Type:服务端所返回的数据体的内容类型,如:Content-Type: text/html; charset=gb2312” 
    Set-Cookie:服务端返回给客户端的cookie数据,如:“ Set-Cookie: ASP.NET_SessionId=icnh2ku2dqlmkciyobgvzl55; path=/

     

    三、服务器返回状态码

    1xx:表明服务端接收了客户端请求,客户端继续发送请求;
    2xx:客户端发送的请求被服务端成功接收并成功进行了处理;
    3xx:服务端给客户端返回用于重定向的信息;
    4xx:客户端的请求有非法内容;
    5xx:服务端未能正常处理客户端的请求而出现意外错误。

     

    举例:

    100”  服务端希望客户端继续;
    200”  服务端成功接收并处理了客户端的请求;
    301”  客户端所请求的URL已经移走,需要客户端重定向到其它的URL
    304”  客户端所请求的URL未发生变化;
    400”  客户端请求错误;
    403”  客户端请求被服务端所禁止;
    404”  客户端所请求的URL在服务端不存在;
    500”  服务端在处理客户端请求时出现异常;
    501”  服务端未实现客户端请求的方法或内容;
    502”  此为中间代理返回给客户端的出错信息,表明服务端返回给代理时出错;
    503”  服务端由于负载过高或其它错误而无法正常响应客户端请求;
    504”  此为中间代理返回给客户端的出错信息,表明代理连接服务端出现超时。

     

     

     

    菜鸟作品,大牛勿喷!

  • 相关阅读:
    VS code 配置 PySide6的UI开发环境
    Python及PySide6学习网址
    NOIP2021模拟赛10.12 题解
    P2388 阶乘之乘 题解
    P3992 [BJOI2017]开车
    「NOIP2021模拟赛四 B」Polyline 题解
    P7115 [NOIP2020] 移球游戏 题解
    P7114 [NOIP2020] 字符串匹配 题解
    P3391 【模板】文艺平衡树 题解
    致夏天
  • 原文地址:https://www.cnblogs.com/secbook/p/3375237.html
Copyright © 2011-2022 走看看