*HTTP介绍
一.准备及介绍
1、本文介绍http协议常用请求。
2、软件准备:burpsuite。
二.详细过程
1、cookie与session的区别:
1.cookie放在客户端,session放在服务端。
2.cookie在本地容易被盗取利用,考虑安全可使用session(放在服务端的)。
3.session是放在服务端,若访问人数比较多,考虑性能问题,可使用cookie。
4.单个cookie数据不能超过4k,很多浏览器一个网站只能保存20个cookie。
5.登录等重要信息建议放session,其它数据信息建议放cookie。
更多介绍:
1、Host:主机(IP地址、域名)。
2、Connection:持久。(close为关闭)
在http1.1中,c/s/都是默认对方支持长链接的, 如果client使用http1.1协议,但又不希望使用长链接,则需要在header中指明connection的值为close;如果server方也不想支持长链接,则在response中也需要明确说明connection的值为close.
不论request还是response的header中包含了值为close的connection,都表明当前正在使用的tcp链接在本次请求处理完毕后会被断掉。之后client再进行新的请求时就必须创建新的tcp链接了。
3、X_FORWARDED_FOR:如果一个 HTTP 请求到达服务器之前,经过了三个代理 Proxy1、Proxy2、Proxy3; 那么按照 XFF 标准,服务端最终会收到信息:X-Forwarded-For: IP0, IP1, IP2 (伪造IP。过waf,绕后台用。)
4、Cookie:身份认证信息。
5、HEAD:获取头部信息。waf对head基本不拦截。
6、OPTIONS:1、获取服务器支持的HTTP请求方法;2、用来检查服务器的性能。
7、domain:指定cookie的有效域,必须和cookie域相同,或是他的父级。
8、secure:防止信息传输过程中的泄露(true: 只能在HTTPS提交cookie;false HTTP、HTTPS连接都可以传输)
9、HttpOnly:无法通过JS直接读取cookie。这样能有效的防止XSS攻击,窃取cookie内容。
代码方法:
cookie.setHttpOnly(httpOnly)或cookie.setHttpOnly(ture);
xml方法:

10、get:从服务器上获取数据。返回前进都不影响。
11、post:向服务器传送数据,后一个请求不会把第一个请求覆盖掉。(所以Post用来增资源),返回前进会一直向服务器发送请求。
12、PUT请求:如果两个请求相同,后一个请求会把第一个请求覆盖掉。(所以PUT用来改资源)
13、Accept :代表发送端(客户端)希望接受的数据类型。Http报头分为通用报头,请求报头,响应报头和实体报头。
请求方的http报头结构:通用报头|请求报头|实体报头
响应方的http报头结构:通用报头|响应报头|实体报头如:Accept-Language: zh,en-US;q=0.9,en;q=0.8,zh-CN;q=0.7(为语言的请求头:zh,为最优先显示的语言,其q=1,省略不写,后面的语言根据q从大到小排序进行优先级)
14、Referer:HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。1)防盗链。2)防止恶意请求。3)访问来源的信息,所以可以用来做一些网站流量的来路统计。
15、User-Agent:用户系统、浏览器等信息。
16、Location:跳转(重定向的)。