response

django middleware介绍

强颜欢笑 提交于 2020-01-26 07:08:47
Middleware Middleware是一个镶嵌到django的request/response处理机制中的一个hooks框架。它是一个修改django全局输入输出的一个底层插件系统。 每个中间件组件负责一些特定的功能,比如说 Django包含一个 AuthenticationMiddleware的中间间,使用sessions将用户和请求联系在一起( that associates users with requests using sessions.)。 这篇文章解释了中间件如何工作,如果激活中间件,如何编写自己的中间件。django有很多内建的中间件,详细内容查看内建中间件附录。 激活中间件 要想激活中间件,需要在settings文件中的 MIDDLEWARE_CLASSES下增加。在 MIDDLEWARE_CLASSES中,每个中间件以一个字符串的形势保存。比如,下面是默认创建工程的中间件 MIDDLEWARE_CLASSES内容: MIDDLEWARE_CLASSES = ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware',

HTTP 2.0 之压测工具 Jmeter

扶醉桌前 提交于 2020-01-26 06:03:29
年后,德国总部工业平台要做中国本地化,德国的同事过来给我们展示日志的时候,无意间看到了他们应用日志里的 HTTP/2,下意识到,原来他们都已经提供Http 2.0的服务了。 那么问题来了,除了h2load这样的压测工具,可以模拟http/2的客户端以外,作为压测工具的业界大佬,因为灵活,支持多种协议,可测场景丰富而深受我喜爱的Jmeter,是否支持http 2.0呢?回答是肯定的,因为有人(非Apache官方)已经为写好了插件,亲测可用。 下面列出这个大神的github地址,Readme文档已经很详细的介绍了如何使用该插件。 Jmeter Http 2 插件代码的Github地址: 请点击这里 如何真的不想点进去,可以看下面的快速安装和使用步骤 : Quick Start : 快速安装使用 1. 下载alpn-boot的jar包 因为Java 8 以及以下版本不支持http 2, 你需要在maven仓库里下载alpn-boot这个jar包,并把它的配置写入到JVM_ARGS配置里。 需要注意的是:下载的apln-boot的版本必须跟你的java版本有对应关系 。 比如我家里的jvm是1.8.0_191,我需要对应alpn-boot和jvm版本的对照表,下载相应的apln-boot版本8.1.11.v20170118。 下载链接: https://www.mvnjar.com/org

Go Web开发之Revel - 返回值

这一生的挚爱 提交于 2020-01-26 03:23:54
返回值必须返回一个 rev.Result, 它处理response的生成并依附于一个简单的接口: type Result interface { Apply(req *Request, resp *Response) } rev.Controller 提供几个方法来生成结果: Render, RenderTemplate - 渲染一个模板, 传递参数. RenderJson, RenderXml - 序列化一个结构的json或xml. RenderText - 返回一个纯文本response. Redirect - 重定向到另一个action或URL RenderFile - 返回一个文件, 通常作为一个附件下载. RenderError - 返回一个 500 response 它渲染 errors/500.html 模板. NotFound - 返回一个 404 response 它渲染 errors/404.html 模板. Todo - 返回一个 stub response (500) 此外,开发人员可以定义他们自己的rev.Result并返回它. 设置状态码 / Content Type 每一个内建的结果都有一个默认的状态码和Content Type. 要重写它们的值只需在response时简单的设置那些要改变的属性: func (c Application) Action

solr-cloud-JAVA调用(十一)

我的未来我决定 提交于 2020-01-25 23:32:47
闲话不多说 直接看代码 ,使用的是集群的方式连接 package com.julong.test; import java.io.IOException; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.client.solrj.response.SolrPingResponse; import org.apache.solr.client.solrj.response.UpdateResponse; import org.apache.solr.common.SolrDocumentList; import org.apache.solr.common.SolrInputDocument; public class SolrCloudTest { public static void main(String[] args) { // TODO

Header解析

自闭症网瘾萝莉.ら 提交于 2020-01-25 22:19:34
不管是作为后端还是前端开发人员,对于web请求的过程和参数都是需要了解的。 下面是对一次简单的http请求的header分析,作为自己的一个总结,也希望对大家有所帮助。 以Chrome为例: 我们对header的参数挨个分析 General Request URL: http://localhost:88/ 这里需要了解的是URI的结构,URI和URL详细请参考 这里 需要注意的地方:锚点(永远不会发到服务器端)URI和URL的区别:URL是URI最常见的一种形式,URL的协议(http/https/ssh/ftp/wss/mailto) Request Method: GET 请求方法除了常见的GET,POST,PUT,DELETE,还包括如下:HEAD:请求获取由Request-URI所标识的资源的响应消息报头CONNECT:保留OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断 参考: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods Status Code: 200 OK 状态码需要了解的大致如下: 1xx:服务器收到信息,等待请求者继续(100:contine,101:协议切换) 2xx:接受并操作成功(200,201

HTML上传文件写法

回眸只為那壹抹淺笑 提交于 2020-01-25 22:17:19
来源于:http://www.cnblogs.com/SkySoot/p/3525139.html html 表单上传文件 一般处理程序由于没有 apsx 页面的整个模型和控件的创建周期,而比较有效率。这里写一个用 html 表单进行文件上传的示例。 1. 表单元素选用 <input type="file"> 控件。 2. form 表单需要设置 enctype="multipart/form-data" 属性,请求报文体中数据格式也由键值对更改为数据头和数具体,并有随机边界符分割。 3. 服务器端接收文件使用 Request.Files 属性。 4. 使用 HttpPostedFile 的 SaveAs 方法保存文件( 需转换成网站物理路径 )。 <body> <form action="UploadFile.ashx" method="post" enctype="multipart/form-data"> <input type="file" name="fileUpload" /> <input type="submit" value="上传文件" /> </form> </body> public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/html";

[Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容

僤鯓⒐⒋嵵緔 提交于 2020-01-25 22:13:03
转自: http://blog.csdn.net/pleasecallmewhy/article/details/8923067 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地。 类似于使用程序模拟IE浏览器的功能,把URL作为HTTP请求的内容发送到服务器端, 然后读取服务器端的响应资源。 在Python中,我们使用urllib2这个组件来抓取网页。 urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件。 它以urlopen函数的形式提供了一个非常简单的接口。 最简单的urllib2的应用代码只需要四行。 我们新建一个文件urllib2_test01.py来感受一下urllib2的作用: import urllib2 response = urllib2.urlopen('http://www.baidu.com/') html = response.read() print html 按下F5可以看到运行的结果: 我们可以打开百度主页,右击,选择查看源代码(火狐OR谷歌浏览器均可),会发现也是完全一样的内容。 也就是说,上面这四行代码将我们访问百度时浏览器收到的代码们全部打印了出来。 这就是一个最简单的urllib2的例子。 除了"http:",URL同样可以使用"ftp:","file:

xss漏洞修复,待完善

孤人 提交于 2020-01-25 11:40:02
1.防止sql注入 /// <summary> /// 分析用户请求是否正常 /// </summary> /// <param name="Str">传入用户提交数据</param> /// <returns>返回是否含有SQL注入式攻击代码</returns> /// private bool ProcessSqlStr(string Str) { bool ReturnValue = true; try { if (!string.IsNullOrWhiteSpace(Str)) { Str = Str.Replace("/*", ""); Str = Str.Replace("*/", ""); Str = Str.ToLower(); string SqlStr = "and |exec |insert |select |delete |update |count | * |chr |mid |master |truncate |char |declare "; string[] anySqlStr = SqlStr.Split('|'); foreach (string ss in anySqlStr) { if (Str.IndexOf(ss) >= 0) { ReturnValue = false; } } } } catch { ReturnValue =

springboot整合拦截器和过滤器

。_饼干妹妹 提交于 2020-01-25 09:18:48
1.拦截器: 新建拦截器: public class DemoInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String name = request.getParameter("name"); System.out.println("DemoInterceptor..." + name); return true; } } 配置类: @Configuration public class MyWebMvcConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { InterceptorRegistration demoInterceptor = registry.addInterceptor(new DemoInterceptor()); demoInterceptor.addPathPatterns("/*"); // 等同于

爬虫值requests库

二次信任 提交于 2020-01-25 01:58:02
requests简介 简介 Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库 ,使用起来比urllib简洁很多 因为是第三方库,所以使用前需要cmd安装 pip install requests 安装完成后import一下,正常则说明可以开始使用了。 基本用法: requests.get()用于请求目标网站,类型是一个HTTPresponse类型 import requests response = requests.get('http://www.baidu.com')print(response.status_code) # 打印状态码print(response.url) # 打印请求urlprint(response.headers) # 打印头信息print(response.cookies) # 打印cookie信息 print(response.text) #以文本形式打印网页源码print(response.content) #以字节流形式打印 运行结果: 状态码:200 url:www.baidu.com headers信息 各种请求方式: import requests requests.get('http://httpbin.org/get') requests.post('http:/