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

大家好,我是数字雨,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:只有当请求方法为POST或PUT方法时客户端才可能会有些字段;
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: close”, “Connection: keep-alive”;
Date:只有当请求方法为POST或PUT方法时客户端才可能会有些字段;
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”  ; 此为中间代理返回给客户端的出错信息,表明代理连接服务端出现超时。

菜鸟作品,大牛勿喷!

转载于:https://www.cnblogs.com/secbook/p/3375237.html

Web-Attak系列教程第二季0x12讲——HTTP的请求与响应格式相关推荐

  1. 织梦仿站系列教程第二十一讲——封面页制作(四)

    织梦搜索提示关键词不少于2个字节 织梦仿站系列教程第二十一讲--封面页制作(四) 看拳击在线的代码,晕,最新新闻和热门新闻竟然是JS调用,我们只好找到这个JS文件,转换成HTML,然后修改. 将如下代 ...

  2. ASP .NET Core Web MVC系列教程二:添加控制器

    系列文章目录:ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序 上一个教程:ASP .NET Core Web MVC系列教程一:创建一个W ...

  3. [java手把手教程][第二季]java后端博客系统文章系统——No10

    项目github地址:github.com/pc859107393- 实时项目同步的地址是国内的码云:git.oschina.net/859107393/m- 我的简书首页是:www.jianshu. ...

  4. 织梦仿站系列教程第二十三讲——列表页制作(二)

    织梦后台提示用户名不存在 查看数据库用户名被改为spider 织梦仿站系列教程第二十三讲--列表页制作(二) 这一讲,我们讲下列表页的分页代码,先找到如下代码: 865 1 href="ht ...

  5. ASP .NET Core Web MVC系列教程四:添加模型

    系列文章目录:ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序 上一个教程:ASP .NET Core Web MVC系列教程三:添加视图 ...

  6. ASP .NET Core Web MVC系列教程三:添加视图

    系列文章目录:ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序 上一个教程:ASP .NET Core Web MVC系列教程二:添加控制器 ...

  7. ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序

    本系列教程翻译自微软官方教程,官方教程地址:Get started with ASP.NET Core MVC | Microsoft Docs 本系列教程介绍了构建MVC Web应用程序的基础知识. ...

  8. Electron系列教程——第二篇:第一个示例

    Electron系列教程--第二篇:第一个示例 一.楔子 在正式开始音乐播放器项目之前,还需要来个简单的案例,以便更好的理解Electron.如果你已经使用过Electron,可以跳过这篇. 本篇将实 ...

  9. MSDN webcast《Silverlight for Windows Phone开发》系列视频第二季

    课程简介 作为第一季度的延续,这一季度讲述一些Windows Phone中文社区讨论相对较少的进阶话题,例如应用程序的生命周期,启动器与选择器,推送通知服务,Panorama与Pivot控件,地理位置 ...

最新文章

  1. TDSQL在微众银行的大规模实践之路
  2. 广告行业中常说的 CPC,CPM,CPD,CPT,CPA,CPS 等词的意思是什么?
  3. 超图桌面版加载obj 3D模型 - 2
  4. 19什么情况下会帮助他人
  5. leetcode - 15. 三数之和
  6. 腾讯将被“重锤”?腾讯股价应声下跌逾5%!造谣原博主销号跑路
  7. vscode不同系统的回退,前进,跳转操作
  8. android view设置按钮颜色_Android 酷炫自定义 View:高仿 QQ 窗帘菜单
  9. 某计算机有900条指令,计算机组成原理习题集.doc
  10. 微信雄踞,头条社交梦破碎?| 畅言
  11. 2014-03-08_javascrit_controllerstatus
  12. 自学-Linux-老男孩Linux77期-day4
  13. Java实现数组反转
  14. 简单阻抗匹配电路及公式
  15. 嵌入式开发培训好学吗?嵌入式培训课程怎么选?
  16. 【Linux命令】mergecap命令的用法
  17. iOS 播放视频的基本步骤
  18. 个人陈述怎么写计算机专业自招,高三自主招生个人陈述范文(最新)
  19. java判断白天黑夜,获取Java中的所有夜晚时间
  20. eval()函数的使用

热门文章

  1. 【python】字符串的操作与方法、元组的定义与操作
  2. apipost使用mock随机获取多组数据中的一组数据进行测试
  3. java deployment_deployment简略介绍
  4. java fields是_一个快速生成R2.java中fields的插件
  5. 软件测试工作都干些什么?
  6. subversion mysql_MySQL数据库之httpd+mysql+php+subversion
  7. python改文件名_python 怎么改文件名
  8. 计算机演示文稿教学实例课件,计算机图形学的教学演示文稿ppt课件.ppt
  9. 值得收藏的数据库基础总结!
  10. 机器学习笔记——随机森林