http协议基础
一、工具介绍
JDK是java的软件开发工具包,方便我们本地运行java开发工具
G:\LAVA\JDK1.8.8_191
验证java -version
Set查看环境变量,path所有变量
Burpsuite
爬虫,扫描(dashboard)、拦包(proxy)、重放repeater、爆破inturder、加码编码decoder、比较comparer
双击打开burpsuite_pro_v2.1_BurpHelper.jar可以使用
或者在终端java -jar burpsuite_pro_v2.1_BurpHelper.jar也可以打开
二、http协议特点
简单快速,请求方式有get post head等八种
无连接无状态
支持模式有B/S(基于浏览器) C/S(编程实现通信)(websocket)
URL,统一资源定位符,在网络中用来标识某处的资源
http(协议)://www.baidu.com(域名):8080(端口)/news(虚拟目录)/index.php(文件名部分)?Parameter=deal&id=35&do=add(三个参数)#name(锚部分)
请求包:request=请求行+请求头+空行+请求数据
请求数据放在尾部是post,放在url里是get
请求方式http1.1 :get post head options put delete trace connect
拦截访问百度:
GET(请求类型) /success.txt HTTP/1.1(协议版本)-------请求行
Host: detectportal.firefox.com User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0 Accept: */* Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Cache-Control: no-cache Pragma: no-cache DNT: 1 Connection: close(上述蓝色字体都是请求头,请求形式都是key=value) 空行 请求数据(此处为空,因为当前的请求包的请求方式是get)
拦截post类型
POST /wordpress/wp-login.php HTTP/1.1 Host: localhost 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://localhost/wordpress/wp-login Cookie: wp-settings-time-1=1569116293; wordpress_test_cookie=WP+Cookie+check DNT: 1 Connection: close Upgrade-Insecure-Requests: 1 Content-Type: application/x-www-form-urlencoded Content-Length: 128 log=admin&pwd=admin123456&wp-submit=%E7%99%BB%E5%BD%95&redirect_to=http%3A%2F%2Flocalhost%2Fwordpress%2Fwp-admin%2F&testcookie=1
Get和post请求的比较
相同点:
1、get和post都可出啊u你创建数组,array,其包含了键值对(key=value),其中的键就是表单控件的名称,值是用户输入的数据。
2、get和post可视为$_get和$_post,是超全局变量
不同点:
1、get型方式将用户发送的数据坪街道url中,发送的数据量较小,不安全
2、post型方式参数放在请求包中的请求数据中,必须使用工具查看,发送的数据量较大,安全性较高。
请求包中的每个请求头的参数意义
Host表示请求的服务器ip
User-agent 表示用户本地环境
Accept 浏览器可以接收解析的应用环境
Accept-language 浏览器可解析的语言类型
Accept-Encoding 浏览器可解析的编码方式
Referer 表示请求页面是从哪里来的
(Action=“”表示提供给自己)
Cookie 表示服务器和浏览器之间的会话状态,该会话状态可以表示用户是否登录过,一般都是服务器给配置,具有时效性。只要失效,就需要用户重新登陆,只有登录成功后,浏览器就会保存cookie,每次去服务器请求都会带上cookie,并在该cookie是需要在服务器中验证
x-forwarded-for:127.0.0.1 表示用户的真实ip
http的响应包:
用户发送的请求包到达服务器后,服务器要处理该请求,处理之后的结果发送给用户的浏览器,我们将该结果称为响应包Response
Response=状态行+消息报头+空行+响应正文
使用bp拦截响应包:
先设置浏览器代理,再去设置bp中的代理监听器,同时注意勾选intercept client requests。
在拦截到数据包之后点击forward,就能看到响应包
状态码
状态码游三位数字组成,第一位数字表示了响应的类型,共有五种:
1xx表示服务器已经接收到请求,并且需要继续处理
2xx表示服务器已经成功接收并处理了该请求
3xx表示重定向,url要跳转到其他界面去请求
4xx表示用户请求有问题,
5xx表示服务器内部出错
常见状态码:200 ( 成功处理了请求,一般情况下都是返回此状态码)
302((临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。)
304((未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容)
400 ( 服务器不理解请求的语法)
403( 服务器拒绝请求)
404 ( 服务器找不到请求的网页)
500((服务器内部错误) 服务器遇到错误,无法完成请求。 )
响应头中每个参数的意义:
location表示跳转页面
x-power-by用于告知网站是用何种语言或框架编写
例如:
PHP标准输出是:X-Powered-By: PHP/5.2.1
HTML元素分类:
块级元素和内联元素
块级元素:标签元素会以新行开始或结束。<h1><p><table>当前元素标签要独占一行
内联元素:显示数据不会以新行开始。<a><img><td>会堆积在一起
<div>块级元素,用于组合其他元素,方便统一设置属性或者样式
布局:设计网页时考虑到页面美观,会设置页面的局部或者整体的布局
<table><div>
html事件
需要触发某些动作的发生,需要事件的支持
Css(层叠式样式表)决定页面怎么显示元素
引入方式:
1、引入文件。例如style.css在当前元素中直接写。例如:style:””
2、外链式,<link>引入外部css文件;导入外部样式;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" type="text/css" href="first.css"> </head> <body> <div id="hacker">this is first title</div> <p class="china">this is second title</p> </body> </html>
Css文件内容如下
3、内嵌方式,在<head>中写样式,使用@import在<head></head>之间应用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css" > @import url(second.css); </style> </head> <body> <div id="p">this is first title</div> </body> </html>
Css如下
优先级:行内模式>内嵌模式>外链式(后两种需要xx.css文件)
Css语法:
选择器{属性一:value1;属性2:value2;}
选择器
第一种情况:标签名 影响其他同类型标签
第二种情况:id
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css">行内模式 #hacker{ color:green; text-align: center; } #china{ color: red; text-align: center; } </style> </head> <body> <div id="hacker">i am hacker</div> <div id="china">i am chinese</div> </body> </html>
第三种情况:class,可以在不同元素中使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css"> .test{ color: red; text-align: center; } </style> </head> <body> <h1 class="test">this is first title</h1> <p class="test">this is second title</p> </body> </html>
常用样式:
后背景:background-color/background-image
字体:color size text-align/text-indet
盒子模式:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css" > #p{ background-color: gray; width: 300px; border: 25px solid pink; padding: 10px; margin: 10px; } </style> </head> <body> <div id="p">this is first title</div> </body> </html>
http协议基础
工具介绍
JDK是java的软件开发工具包,方便我们本地运行java开发工具
G:\LAVA\JDK1.8.8_191
验证java -version
Set查看环境变量,path所有变量
Burpsuite
爬虫,扫描(dashboard)、拦包(proxy)、重放repeater、爆破inturder、加码编码decoder、比较comparer
双击打开burpsuite_pro_v2.1_BurpHelper.jar可以使用
或者在终端java -jar burpsuite_pro_v2.1_BurpHelper.jar也可以打开
http协议特点
见到那快速,请求方式有get post head等八种
无连接无状态
支持模式有B/S(基于浏览器) C/S(编程实现通信)(websocket)
URL,统一资源定位符,在网络中用来标识某处的资源
http(协议)://www.baidu.com(域名):8080(端口)/news(虚拟目录)/index.php(文件名部分)?Parameter=deal&id=35&do=add(三个参数)#name(锚部分)
请求包:request=请求行+请求头+空行+请求数据
请求数据放在尾部是post,放在url里是get
请求方式http1.1 :get post head options put delete trace connect
拦截访问百度:
GET(请求类型) /success.txt HTTP/1.1(协议版本)-------请求行
Host: detectportal.firefox.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cache-Control: no-cache
Pragma: no-cache
DNT: 1
Connection: close(上述蓝色字体都是请求头,请求形式都是key=value)
空行
请求数据(此处为空,因为当前的请求包的请求方式是get)
拦截post类型
POST /wordpress/wp-login.php HTTP/1.1
Host: localhost
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://localhost/wordpress/wp-login
Cookie: wp-settings-time-1=1569116293; wordpress_test_cookie=WP+Cookie+check
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 128
log=admin&pwd=admin123456&wp-submit=%E7%99%BB%E5%BD%95&redirect_to=http%3A%2F%2Flocalhost%2Fwordpress%2Fwp-admin%2F&testcookie=1
Get和post请求的比较
相同点:
1、get和post都可出啊u你创建数组,array,其包含了键值对(key=value),其中的键就是表单控件的名称,值是用户输入的数据。
2、get和post可视为$_get和$_post,是超全局变量
不同点
1、get型方式将用户发送的数据坪街道url中,发送的数据量较小,不安全
2、post型方式参数放在请求包中的请求数据中,必须使用工具查看,发送的数据量较大,安全性较高。
请求包中的每个请求头的参数意义
Host表示请求的服务器ip
User-agent 表示用户本地环境
Accept 浏览器可以接收解析的应用环境
Accept-language 浏览器可解析的语言类型
Accept-Encoding 浏览器可解析的编码方式
Referer 表示请求页面是从哪里来的
(Action=“”表示提供给自己)
Cookie 表示服务器和浏览器之间的会话状态,该会话状态可以表示用户是否登录过,一般都是服务器给配置,具有时效性。只要失效,就需要用户重新登陆,只有登录成功后,浏览器就会保存cookie,每次去服务器请求都会带上cookie,并在该cookie是需要在服务器中验证
x-forwarded-for:127.0.0.1 表示用户的真实ip
DNT
http的响应包:用户发送的请求包到达服务器后,服务器要处理该请求,处理之后的结果发送给用户的浏览器,我们将该结果称为响应包Response
Response=状态行+消息报头+空行+响应正文
使用bp拦截响应包
先设置浏览器代理,再去设置bp中的代理监听器,同时注意勾选intercept client requests。
在拦截到数据包之后点击forward,就能看到响应包
状态码游三位数字组成,第一位数字表示了响应的类型,共有五种:
1xx表示服务器已经接收到请求,并且需要继续处理
2xx表示服务器已经成功接收并处理了该请求
3xx表示重定向,url要跳转到其他界面去请求
4xx表示用户请求有问题,
5xx表示服务器内部出错
常见状态码:200 ( 成功处理了请求,一般情况下都是返回此状态码)
302((临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。)
304((未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容)
400 ( 服务器不理解请求的语法)
403( 服务器拒绝请求)
404 ( 服务器找不到请求的网页)
500((服务器内部错误) 服务器遇到错误,无法完成请求。 )
响应头中每个参数的意义:
location表示跳转页面
x-power-by用于告知网站是用何种语言或框架编写
例如:
PHP标准输出是:X-Powered-By: PHP/5.2.1
HTML元素分类:块级元素和内联元素
块级元素:标签元素会以新行开始或结束。<h1><p><table>当前元素标签要独占一行
内联元素:显示数据不会以新行开始。<a><img><td>会堆积在一起
<div>块级元素,用于组合其他元素,方便统一设置属性或者样式
布局:设计网页时考虑到页面美观,会设置页面的局部或者整体的布局
<table><div>
html事件
需要触发某些动作的发生,需要事件的支持
Css(层叠式样式表)决定页面怎么显示元素
引入方式:
1、引入文件。例如style.css在当前元素中直接写。例如:style:””
2、外链式,<link>引入外部css文件;导入外部样式;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="first.css">
</head>
<body>
<div id="hacker">this is first title</div>
<p class="china">this is second title</p>
</body>
</html>
Css文件内容如下
3、内嵌方式,在<head>中写样式,使用@import在<head></head>之间应用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css" >
@import url(second.css);
</style>
</head>
<body>
<div id="p">this is first title</div>
</body>
</html>
Css如下
优先级:行内模式>内嵌模式>外链式(后两种需要xx.css文件)
Css语法:
选择器{属性一:value1;属性2:value2;}
选择器
第一种情况:标签名 影响其他同类型标签
第二种情况:id
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">行内模式
#hacker{
color:green;
text-align: center;
}
#china{
color: red;
text-align: center;
}
</style>
</head>
<body>
<div id="hacker">i am hacker</div>
<div id="china">i am chinese</div>
</body>
</html>
第三种情况:class,可以在不同元素中使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
.test{
color: red;
text-align: center;
}
</style>
</head>
<body>
<h1 class="test">this is first title</h1>
<p class="test">this is second title</p>
</body>
</html>
常用样式:
后背景:background-color/background-image
字体:color size text-align/text-indet
盒子模式:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css" >
#p{
background-color: gray;
width: 300px;
border: 25px solid pink;
padding: 10px;
margin: 10px;
}
</style>
</head>
<body>
<div id="p">this is first title</div>
</body>
</html>