http请求

跨站跟踪攻击(CST/XST)

廉价感情. 提交于 2019-12-06 03:17:59
XSS与httponly 正常情况下,客户端脚本(如JS脚本)是可以通过document.cookie函数获得,这样如果有XSS跨站漏洞,cookie很容易被盗取。浏览器有一个安全策略,通过设置cookie的httponly属性,这样客户端脚本就不能通过document.cookie访问该cookie,即使有XSS漏洞,也不能盗取用户cookie。这个时候就可以利用HTTP TRACE方法来获取到用户的cookie信息。 TRACE方法 TRACE作用:客户端发起一个请求时,这个请求可能要穿过防火墙、代理、网关或其他一些应用程序。每个中间节点都可能会修改原始的 HTTP 请求。TRACE 方法允许客户端在 最终将请求发送给服务器时,看看它变成了什么样子。 下面就来看下允许TRACE方法的服务器,TRACE方法是如何工作的。 请求包: TRACE http://10.20.40.95/bWAPP/bWAPP/xss_get.php?firstname=aaaa&lastname=aaa&form=submit HTTP/1.1 Host: 10.20.40.95 Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)

HTTP请求简单了解

时光总嘲笑我的痴心妄想 提交于 2019-12-06 02:53:20
HTTP字面意思即超文本传输协议 HTTP 请求(request)包含三个部分: 请求行(Request line) + 请求头(Request header) + 请求体(body) 请求行又包括三部分: method + request-URI + http-version method代表请求方法,即我们常用的get、post等请求方式,下图代表各请求方法的意义 get 通过请求URI 获得资源 post 用于添加新的资源,用于表单提交 put 用于修改某个内容 delete 删除某个内容 connect 用于代理进行传输例如SSL options 询问可以执行那些方法 patch 部分文档更该 propfind 查看属性 proppatch 设置属性 mkcol 创建集合 copy 拷贝 move 移动 lock 加锁 unlock 解锁 trace 用于远程诊断服务器 head 类似于get ,用于检查对象是否存在用于得到元数据 request-URI代表请求资源的路径 http-version即http协议的版本号,当前使用的主要是HTTP/1.1版本 请求头部分关键字: Accept :指浏览器或其他客户可以接爱的MIME文件格式。Servlet可以根据它判断并返回适当的文件格式。 User-Agent :客户端使用的操作系统和浏览器的名称和版本。例: user

HTTP学习笔记01

谁说胖子不能爱 提交于 2019-12-06 02:36:42
参考内容:      关于HTTP协议,一篇就够了     理解HTTP协议      HTTP 协议入门      超文本传输协议- 维基百科,自由的百科全书      HTTP   昨天通过读文档、读博文、看教程学习了一下HTTP协议,发现真是“天下文章一大抄”,这种现象无可厚非,毕竟知识本身也就只有那些内容,并且博文里也注明了参考链接,大家也都见怪不怪了,但是连很明显的病句都是一模一样,那就有点尴尬了。我写学习笔记肯定也会“抄”(哈哈,piapia打脸)。 一、协议概述    超 文本传输协议是(英语:HyperText Transfer Protocol,缩写:HTTP)是一个客户端和服务端之间请求和应答的标准,主要规定了客户端与服务器之间的通信格式,通常使用TCP协议(尽管TCP/IP协议是互联网上最流行的应用,但是在HTTP协议中并没有规定它必须使用或它支持的层。事实上HTTP可以在任何互联网协议或其他网络上实现。HTTP假定其下层协议提供可靠的传输。因此,任何能够提供这种保证的协议都可以被其使用,所以其在TCP/IP协议族使用TCP作为其传输层)。   HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息

TCP/IP、Http的区别

我只是一个虾纸丫 提交于 2019-12-06 02:11:48
TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。 关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP 文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”   术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议。“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络。把 IP想像成一种高速公路 ,它允许其它协议在上面行驶并找到到其它电脑的出口。 TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP ,文件传输协议FTP这样的协议等。 你应该能理解,TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议。虽然TCP和UDP都是用来传输其他协议的,它们却有一个显著的不同:TCP提供有保证的数据传输,而UDP不提供。这意味着TCP有一个特殊的机制来确保数据安全的不出错的从一个端点传到另一个端点,而UDP不提供任何这样的保证。 HTTP(超文本传输协议

C# 【Http请求返回】性能优化500毫秒到 60 毫秒

北城以北 提交于 2019-12-06 01:53:15
偶然发现 C# 的 HttpRequest 要比 Chrome 请求同一Url 慢好多。C# HttpRequest 要500毫秒 而Chrome 只需要 39ms。 作为有责任感的 码农。这个 必须优化。。 后来 整理 各种方法做了优化 HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest; request.KeepAlive = false; request.ServicePoint.Expect100Continue = false; request.ServicePoint.UseNagleAlgorithm = false; request.ServicePoint.ConnectionLimit = 65500; request.AllowWriteStreamBuffering = false; request.Proxy = null; response.Close(); request.Abort(); 打开 KeepAlive 属性,这个可以打开一个tcp连接并在 一段时内重用tcp连接,从而加快http 请求。(默认是打开的)(我在开启keepalive 时出现 服务器关闭连接的错误,在请求完成后 加response.Close();request.Abort(); 后

ejabberd中的http反向推送

喜夏-厌秋 提交于 2019-12-06 01:29:31
http的反向推送通常使用"长轮询"或"长连接"的方式。 所谓"长轮询"是指客户端发送请求给服务器,服务器发现没有数据需要发送给客户端于是hold住不及时返回,等有数据需要发送给客户端时,进行回复,然后关闭连接,客户端收到回复后再发送新的http请求,以便服务器能有对应的请求用于消息的反向推送。 而"长连接"是在长轮询的基础上增加"keep-alive"属性,服务器收到请求后不直接回复,等有数据需要发送给客户端时再进行response,但是并不关闭连接,这样客户端收到服务器的response后在同一连接上再次发送http请求。 在ejabberd的实现中,采用了bosh技术来完成对应的工作,具体定义可参考: 英文: http://xmpp.org/extensions/xep-0124.html 中文: http://wiki.jabbercn.org/XEP-0124 大概实现原理:ejabberd收到一个客户端http请求后会为该客户端最终创建三个进程:ejabberd_http, ejabberd_http_bind, ejabberd_c2s。 ejabberd_http进程不断的从对应的socket上收客户端的请求,并转发交给对应的ejabberd_http_bind进程进行处理,然后同步等待处理结果,并将结果返回给客户端。 init() -> ... receive

02-01 请求库之requests库

牧云@^-^@ 提交于 2019-12-06 01:12:11
02-01 请求库之requests库 一 介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:requests库发送请求将网页内容下载下来以后,并不会执行js代码,这需要我们自己分析目标站点然后发起新的request请求 #安装:pip3 install requests #各种请求方式:常用的就是requests.get()和requests.post() >>> import requests >>> r = requests.get('https://api.github.com/events') >>> r = requests.post('http://httpbin.org/post', data = {'key':'value'}) >>> r = requests.put('http://httpbin.org/put', data = {'key':'value'}) >>> r = requests.delete('http://httpbin.org/delete') >>> r = requests.head('http://httpbin.org/get') >>> r = requests.options('http://httpbin.org

HTTP简介

混江龙づ霸主 提交于 2019-12-06 00:58:25
1、介绍 HTTP,超文本传输协议,是互联网中最为常用的一种网络协议。 2、组成 HTTP协议有HTTP请求和HTTP响应组成。 3、HTTP请求 编辑一个form表单页面,如下: 1 <html> 2 <head> 3 <meta charset="UTF-8"> 4 <title>HTTP TEST</title> 5 </head> 6 <body> 7 <form action="demo1.html" method="POST"> 8 <input type="text" name="username"><br> 9 <input type="password" name="password"><br> 10 <input type="submit" value="测试HTTP请求"><br> 11 </form> 12 </body> 13 </html> 点击提交按钮,抓包如下: //请求行 POST /zhoubin/document/demo1.html HTTP/1.1, //请求路径 //请求头 Accept:text/html,application/xhtml+xml,*/*     //浏览器可支持的文件类型 Referer:http://localhost:8080/zhoubin/document/demo1.html //刷新 Accept

http常见的form表单请求方式

一个人想着一个人 提交于 2019-12-06 00:55:44
在Web开发中,我们使用的比较多的HTTP请求方式基本上就是GET、POST。 一、http请求常见的表单文件上传形式 首先了解下application/x-www-form-urlencoded和multipart/form-data的区别: <form enctype="application/x-www-form-urlencoded" action="http://" method="POST"> <input type="text" name="name" value="homeway"> <input type="text" name="key" value="nokey"> <input type="submit" value="submit"> </form> application/x-www-form-urlencoded: 是常用的表单发包方式,普通的表单提交,或者js发包,默认都是通过这种方式。当action为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2…),然后把这个字串append到url后面,用?分割,加载这个新的url。当action为post时候,浏览器把form数据封装到http body中,然后发送到server(服务器)。

HTTP

百般思念 提交于 2019-12-06 00:47:49
HTTP协议简介 超文本传输协议 (英语: H yper T ext T ransfer P rotocol,缩写: HTTP )是一种用于分布式、协作式和 超媒体 信息系统的 应用层 协议 [ 1] 。HTTP是 万维网 的数据通信的基础。 设计HTTP最初的目的是为了提供一种发布和接收 HTML 页面的方法。通过HTTP或者 HTTPS 协议请求的资源由 统一资源标识符 (Uniform Resource Identifiers,URI)来标识。 HTTP的发展是由 蒂姆·伯纳斯-李 于1989年在 欧洲核子研究组织 (CERN)所发起。HTTP的标准制定由 万维网协会 (World Wide Web Consortium,W3C)和 互联网工程任务组 (Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的 RFC ,其中最著名的是1999年6月公布的 RFC 2616 ,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。 2014年12月, 互联网工程任务组 (IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小组将 HTTP/2 标准提议递交至 IESG 进行讨论[ 2] ,于2015年2月17日被批准。[ 3] HTTP/2标准于2015年5月以RFC