HTTP协议基础

HTTP:HyperText Transfer Protocol,超文本传输协议

1.协议特点:

简单快速,请求方式get post head等8中请求方式

无连接(一次请求就断开)无状态(没有记忆功能,不会记录任何信息)

2.支持的模式:B/S、C/S(websocket进行通信)

BurpSuite,渗透测试神器,使用Java开发,功能齐全,方便渗透测试人员去测试Web站点

功能:爬虫、扫描、拦包

HTTP协议特点:

简单快速,请求方式有get、post、head 等8种

无连接无状态

支持模式有 B/S(浏览器) C/S(通过websocket去通信)

URL,统一资源定位符,在网络中用来标识某处的资源

http(协议)://www.baidu.com(域名):8080(端口)/news(虚拟目录)/index.php

(文件名部分)?parameter=deal&id=35&do=add(三个参数,?开始,用&连接)#name(锚部分)

请求包:request=请求行+请求头+空行+请求数据

请求方式:

http1.0: GET POST HEAD

http1.1:GET POST HEAD OPTIONS PUT DELETE TRACK CONNECT

GET /test.html?name=qwe&passwd=asd&submit=submit HTTP/1.1    请求行 (请求方式+url+协议以及版本)

Host: 127.0.0.1

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Referer: http://127.0.0.1/test.html?name=qwe&passwd=asd&submit=submit

DNT: 1    上述请求头

Connection: close

Upgrade-Insecure-Requests: 1

If-Modified-Since: Mon, 23 Sep 2019 01:43:40 GMT

If-None-Match: "116-5932e8c9787e8"

空行

请求数据(GET没有,POST有)

BurpSuite:

爬虫、扫描(dashboard)

拦包(proxy)

重放(repeater)

爆破(intruder)

解码和编码(decoder)

比较(comparer)

打开方式:双击或者在dos里面打开

GET和POST请求方式比较:

相同点:

1、GET和POST都可以创建数组,array,其包含了键值对(key=value),

其中键是表单控件的名称,值是用户输入的数据

2、GET和POST被视为$_GET和$_POST,是超全局变量

不同点

1、GET型方式将用户发送的数据拼接到URL中,发送到数据量较小,不安全

2、POST型方式参数放在请求包中的请求数据中,必须使用工具去查看,

发送的数据量较大,安全性较高

请求包中每个请求头中参数的含义

HOST (表示请求的服务器的IP)

User-Agent(表示用户本地环境)

Accept(浏览器可解析的应用环境)

Accept-Language(浏览器可解析的语言类型)

Accept-Encoding(浏览器可解析的编码方式)

Referer(表示请求页面是从哪里来的********)

Cookie(表示服务器和浏览器之间的会话状态,该会话状态可以表示用户是否

登陆过,一般都是服务器给配置,具有时效性。只要失效,就需要用户重新登陆。

只有登陆成功之后,浏览器就会保存Cookie,每次去服务器请求都会带上cookie,

并且该cookie是需要在服务器中去验证。)

X-forwarded-for(表示用户的真实ID)

Conent-Type (内容类型,表示该请求数据的类型)

Host: www.baidu.com

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Referer: https://www.baidu.com/

Cookie: BAIDUID=2E9FEFD30D878F71EFFAF2220402EC40:FG=1; BIDUPSID=2E9FEFD30D878F71EFFAF2220402EC40; PSTM=1569129383; delPer=0; BD_HOME=0; H_PS_PSSID=1453_21098_29523_29721_29567_29220

DNT: 1

Connection: close

Upgrade-Insecure-Requests: 1

HTTP的相应包

用户发送的请求包到达服务器之后,要去处理该请求,把处理之后的结果发送给

用户的浏览器,我们将该结果称为相应包,response

Response=状态行+消息报头+空行+响应的正文

使用BP拦截相应包

先去设置浏览器中代理,再去设置BP中代理监听器,并勾选Intercept Server Rserponses

再拦截到数据包之后,点击Forward,就能看到相应包

HTTP/1.1 200 OK 状态行

Date: Mon, 23 Sep 2019 03:09:02 GMT 服务器响应时间

Server: Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a 服务器环境

Last-Modified: Mon, 23 Sep 2019 01:43:40 GMT

ETag: "116-5932e8c9787e8"

Accept-Ranges: bytes

Content-Length: 278 返回数据包长度

Connection: close 连接状态

Content-Type: text/html 返回响应数据的类型,告诉浏览器该使用哪种方式去解析或者打开该响应数据类型

Location:index.php 表示要跳转的哪的页面

Set-cookie: 表示服务器给浏览器设置的cookie的值

状态码,由三位数字组成,第一位数字表示了响应的类型,共有五种类型

1XX:表示服务器已经接收到请求,并且需要继续处理

2XX:表示服务器已经成功接收请求,并处理了该请求

3XX:表示重定向,URL要跳转到其他页面去请求

4XX:表示用户请求有问题

5XX:表示服务器内部出错

常见状态码:200 302 304 400 403 404 500

200 请求成功

302 临时移动。与301类似。但资源知识临时被移动,客户端应继续使用原有URL

304 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端

通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期后修改的资源

400 客户端请求的语法错误,服务器无法理解

403 服务器理解请求客户端的请求,但是拒绝执行此请求

404 请求的资源(网页等)不存在

500 内部服务器错误

响应头中每个参数的含义:

Date(服务器响应时间)

Server(服务器环境)

Conten-Length(返回数据包长度)

Connection(连接状态)

Conent-Type(返回响应数据的类型,告诉浏览器该用哪一种方式去解析或者打开该响应数据类型)

Location (表示要跳转到那个页面中)

Set-cookie(表示服务器给浏览器设置的cookie的值)

burp放包_详解BurpSuite软件 请求包 HTTP (9.23 第十天)相关推荐

  1. python xlrd安装_详解python中xlrd包的安装与处理Excel表格

    一.安装xlrd 地址 下载后,使用 pip install .whl安装即好. 查看帮助: >>> import xlrd >>> help(xlrd) Help ...

  2. 包区别 版本_详解Linux下二进制包、源代码包、rpm包区别与联系

    概述 有时去官网下载文件,因为很多格式,有时总会混淆,不知道哪个是需要的包,今天抽空做个总结,区别一下Linux的二进制包.源代码包.rpm包. 1.二进制包介绍(bin) 二进制包里面包括了已经经过 ...

  3. python自定义包_详解python自定义模块、包

    1.保存一个hello.py文件在F:/data/python目录下hello.py >>> def hello(x): print x 目录 导入 >>> imp ...

  4. npm、pnpm和yarn使用(官网、安装、命令行、上传自己的包、包版本号详解、更新卸载包、查看所有版本、同等依赖peer、可选依赖optional)

    目录 npm 官网 npm install packageName npm i packagename@版本号 安装git上发布的包 npm ci 注意(对比npm i) npm outdated n ...

  5. java 页面接收参数_详解SpringMVC——接收请求参数和页面传参

    spring接收请求参数: 1,使用HttpServletRequest获取 @RequestMapping("/login.do") public String login(Ht ...

  6. python哪里下载import包-【Python实战】模块和包导入详解(import)

    1.模块(module) 1.1 模块定义 通常模块为一个.py文件,其他可作为module的文件类型还有".pyo".".pyc".".pyd&qu ...

  7. Burp Suite安装配置详解(附Java 环境安装)

    Burp Suite安装配置详解 1.Java 安装与环境配置详解 1.0 下载Java SDK 1.8 最新版 2.0 配置Java 环境变量 2.Burp Suite 安装详解 2.0 下载Bur ...

  8. [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)...

    [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天才在于积累!) --通过知识共享树立个人品牌.   继上七篇:            [推荐]ORACLE P ...

  9. Java开源项目Hibernate包作用详解

    Java开源项目Hibernate包作用详解 本文引自:http://hi.baidu.com/nick6610/blog/item/70b58afa0d0eab9259ee90f7.html Jav ...

  10. jmeter 导入java,JMeter导入自定义的Jar包的详解教程

    1.简介 原计划这一篇是介绍前置处理器的基础知识的,结果由于许多小伙伴或者童鞋们在微信和博客园的短消息中留言问如何引入自己定义的Jar包呢???我一一回复告诉他们和引入插件的Jar包一样的道理,一通百 ...

最新文章

  1. LINQ : IEnumerableT and IQueryableT区别
  2. 新手入门:Kaggle NLP比赛总结
  3. 加密日记 android,深挖Android加密到崩溃
  4. python大数据分析实例-用Python整合的大数据分析实例
  5. 判断点是否在一个任意多边形中
  6. python多线程和多进程——python并行编程实验
  7. 如何无缝迁移 SpringCloud/Dubbo 应用到 Serverless 架构
  8. 心电信号越界怎么回事_心电监护仪常见故障分析与排除
  9. 怎么不能锁门_学校规定宿舍不能锁门,声称方便检查卫生,你认为这合理吗?...
  10. layout elements
  11. git rebase vs git merge
  12. 追忆我的2008-养成做笔记的习惯
  13. 计算机三四级网络技术,全国计算机等级考试四级网络技术论述题真题(2-3)
  14. BTC源码分析 准备
  15. 不容错过!Greenplum的又一本好书
  16. [转载] 我的Android进阶之旅:经典的大牛博客推荐
  17. WorldFirst澳元收款账户上线,人民币提现当天到账!
  18. 如何取消PPT的密码保护?
  19. OSError: [Errno 22] Invalid argument: ‘C:\\Users\\0moyi0\\Desktop\\AD_kk.png‘
  20. (c#)int类型和枚举类型的相互转换

热门文章

  1. CListCtrl 类中InsertItem, InsertColumn, SetItemText 的使用
  2. ubunut 安装 pyqt5
  3. Token 的生成 和 验证
  4. 2019小程序没必要做了_2019年,小程序还要不要做
  5. 一个websocket 可以多个页面创建吗_聊聊 WebSocket,还有 HTTP
  6. qt制作一个简易的听小说工具
  7. C/C++正则表达式匹配数字范围/小数点后几位
  8. php学生信息管理系统(源码)
  9. jtm 一键安装mysql_一键安装MySQL
  10. php嗅探源码,网络嗅探器(含源代码)