[HTTP趣谈]origin,referer和host区别

发起一个ajax请求时,requestheader里面有三个属性会涉及请求源信息。前端可能用不到这些值,但是,后台业务系统会比较关心它们,场景可能有:   处理跨域请求时,必须判断来源请求方是否合法;   后台做重定向时,需要原地址信息;作为前端,了解三者的区别和使用场景,还是有很意义的。先看图:imghost.png1.Host描述请求将被发送的目的地,包括,且仅仅包括域名和端口号。在任何类型请求中,request都会包含此header信息。2.Origin用来说明请求从哪里发起的,包括,且仅仅包括协议和域名。这个参数一般只存在于CORS跨域请求中,可以看到response有对应的header:Access-Control-Allow-Origin。3.Referer告知服务器请求的原始资源的URI,其用于所有类型的请求,并且包括:协议+域名+查询参数(注意,不包含锚点信息)。因为原始的URI中的查询参数可能包含ID或密码等敏感信息,如果写入referer,则可能导致信息泄露。---------------------作者:...

自定义枚举 --- Swagger文档展示

 在其它两篇文章中,已经解决的自定义枚举在MyBatis以及Rest接口的转换,但是在Springfox中还存在问题,不能使用code来作为api。本文通过扩展Springfox,实现了对自定义枚举的良好支持。ps:枚举的定义参见自定义枚举---MyBatis字段映射 Springfox默认枚举存在2个问题类型显示为string,需要修改为integer枚举的类型显示为枚举值,需要修改为枚举的code值(CodedEnum的定义请参见其他文章) 扩展Springfox后的枚举展示实现ModelPropertyBuilderPlugin接口,@ComponentpublicclassCodedEnumPropertyPluginimplementsModelPropertyBuilderPlugin{@Overridepublicvoidapply(ModelPropertyContextcontext){Optional<ApiModelProperty>annotation=Optional.absent();if(context.getAn...

vs2015 HTTP Error 400. The request hostname is invalid.

<sitename="XDomainProxy(1)"id="3"><applicationpath="/"applicationPool="Clr4IntegratedAppPool"><virtualDirectorypath="/"physicalPath="E:GitHomeeschoolAppXDomainProxy"/></application><bindings><bindingprotocol="http"bindingInformation="*:57095:localhost"/><bindingprotocol="http"bindingInformation="*:57095:127.0.0.1"/></bindings></site> ...

ssh连接时提示THE AUTHENTICITY OF HOST XX CAN'T BE ESTABLISHED

问题描述:使用ssh远程连接的时候报如下错误:解决办法:输入如下命令:ssh-oStrictHostKeyChecking=no root@123.59.xx.xx输入密码,链接成功其他解决方案:vi~/.ssh/known_hosts删除与想要连接的主机相关的行;或者直接删除known_hosts这个文件。当然这个方案也是可行的,但并非解决问题的根本办法,因为继续使用,今后还会出现这样的情况,还得再删除。下面简单讲一下这个问题的原理和比较长久的解决方案。用OpenSSH的人都知ssh会把你每个你访问过计算机的公钥(publickey)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免你受到DNSHijack之类的攻击。SSH对主机的public_key的检查等级是根据StrictHostKeyChecking变量来配置的。默认情况下,StrictHostKeyChecking=ask。简单描述下它的三种配置值:1.StrictHostKeyChecking=no  ...

VS中调试查看DataTable和DataSet时未能加载此自定义查看器解决方法

在网上找了几个方法,感觉不太实用,最后自己找到了问题所在 VS2017中选择调试-选项-常规中的使用托管兼容模式取消勾选。之后就可以了...

ASPxGridView中Command列自定义按钮点击事件概要

其中CustomButtonClick="ButtonClick",e.buttonID可以获取到自定义按钮的ide.visibleIndex获取到行的索引grdList.GetRowKey(e.visibleIndex)可以获取到行的key...

8. Python自定义模块humansize

我们在提取一个文件元信息的时候,经常会使用到获取元信息的size,但是默认提取出来的是字节为单位计算的大小,我们需要转换成MB或者GB或者TB的大小。因此就需要使用到humansize这个模块,这个模块不是系统内置的,你可以通过help()查询内置模块是没有这个的模块的。需要从其他地方导入才可以进行使用。将下面的文件保存成humansize.py放在默认python目录下。1'''''Convertfilesizestohuman-readableform.23Availablefunctions:4approximate_size(size,a_kilobyte_is_1024_bytes)5takesafilesizeandreturnsahuman-readablestring67Examples:8>>>approximate_size(1024)9'1.0KiB'10>>>approximate_size(1000,False)11'1.0KB'1213'''1415SUFFIXES={1000:['KB','MB','GB','TB','...

Apache Oozie Coordinator 作业自定义配置定时任务

一,介绍Oozie是Hadoop的工作流系统,如果使用Oozie来提交MapReduce作业(Oozie不仅仅支持MapReduce作业,还支持其他类型的作业),可以借助OozieCoordinator作业来实现定时运行。对于Oozie的作业而言,在它提交给Hadoop之前首先需要部署好。即,将配置文件(定时作业是coordinator.xml,workflow作业则是workflow.xml)、可执行的jar文件、还有待处理的输入数据上传到HDFS上。一个典型的workflow作业的配置如下:其中,对应的配置文件workflow.xml如下:其中,SampleMapper和SampleReducer则是将写好的MapReduce程序的Mapper类和Reducer类然后,再在命令行使用oozie-job....就可以把作业提交到Hadoop运行了。 二,定时作业的配置及提交运行这是本文的重点。Oozie使用Coordinator作业来实现定时功能,对于一个定时作业,同时也需要配置文件。即:coordinator.xml。一个简单的示例如下:frequency、start、e...

Oozie coordinator 作业自定义的配置的一些方法

Oozie的coordinator有啥用?TheOozie Coordinator systemallowstheusertodefineandexecuterecurrentandinterdependentworkflowjobs(dataapplicationpipelines).说白了就是可以把各个workflow作业组织起来。比如,A作业执行完成之后,会有输出,该输出触发B作业的执行。那么AB这两个workflow作业就可以通过一个coordinator作业组织起来。什么是coordinator作业CoordinatorJob: Acoordinatorjobisanexecutableinstanceofacoordinationdefinition.Ajobsubmissionisdonebysubmittingajobconfigurationthatresolvesallparametersintheapplicationdefinition.这说明coordinator作业也是需要配置相应的参数的。与提交workflow作业时配置wo...

JAVA正确地自定义比较对象---如何重写equals方法和hashCode方法

在实际应用中经常会比较两个对象是否相等,比如下面的Address类,它有两个属性:Stringprovince和Stringcity。publicclassAddress{privateStringprovince;privateStringcity;publicStringgetProvince(){returnprovince;}publicvoidsetProvince(Stringprovince){this.province=province;}publicStringgetCity(){returncity;}publicvoidsetCity(Stringcity){this.city=city;}publicAddress(){}publicAddress(Stringprovince,Stringcity){this.province=province;this.city=city;}} 在现实生活中我们认为若两个Address的province和city属性相同,则它们应该是同一个地址(省市都一样,当然就是同一个地区啦)。但下面的代码却表明:address...

3种创建自定义服务的方式

3种创建自定义服务的方式FactoryServiceProviderfactory方式创建的服务,作用就是返回一个有属性有方法的对象。相当于:varf=myFactory();<!DOCTYPEhtml><html><head><metacharset="utf-8"><scriptsrc="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script></head><body><divng-app="myApp"ng-controller="myCtrl"><p>{{r}}</p></div><script>//创建模型varapp=angular.module('myApp',[]);//通过工厂模式创建自定义服务app.factory('myFactory',function(){varservice={};//定义一个Object对象'service...

自定义服务

3种创建自定义服务方式。FactoryServiceProvider大家应该知道,AngularJS是后台人员在工作之余发明的,他主要应用了后台早就存在的分层思想。所以我们得了解下分层的作用,如果你是前端人员不了解什么是分层,那么你最好问问你后台的小伙伴。dao层:就是Model层,在后台时,这一层的作用,就要是写与数据库交互数据的一层,在angularJS里就主要是写ajax的。service层:主查写逻辑代码的,但在angularJS里也可以持久化数据(充当数据容器),以供不同的controller高用。controller层:即控制层,在angularJS里就是写控制器的。控制器里尽量不要写那些不必要的逻辑,尽量写在service层里。所以,就有了创建自定义服务的三种方式。factory方式创建服务,作用就是返回一个有属性有方法的对象。相当于:varf=myFactory();<!DOCTYPEhtml><html><head><metacharset="utf-8"><scriptsrc="http://apps.bdi...
代码星球 代码星球·2020-04-04

day3 自定义指令详解

在angular中,Directive,自定义指令的学习,可以更好的理解angular指令的原理,当angular的指令不能满足你的需求的时候,嘿嘿,你就可以来看看这篇文章,自定义自己的指令,可以满足你的各种需求的指令。  本篇文章的参考来自 AngularJS权威指南,  文章中主要介绍指令定义的选项配置  废话不多说,下面就直接上代码//angular指令的定义,myDirective,使用驼峰命名法angular.module('myApp',[]).directive('myDirective',function($timeout,UserDefinedService){//指令操作代码放在这里});//angular自定义指令的使用,使用“-”来代替驼峰命名法<divmy-directive></div>注意:为了避免与未来的HTML标准冲突,给自定义的指令加入前缀来代表自定义的命名空间。AngularJS本身已经使用了ng-前缀,所以可以选择除此以外的名字。在例子中我们使用my-前缀(比如my-derictive)。...
代码星球 代码星球·2020-04-04

简述angular自定义过滤器在页面和控制器中的使用

首先设置自定义过滤器。  定义模块名:angular      ?123456.module('myApp')       .filter('filterName',function(){         returnfunction(要过滤的对象,参数1,参数2,...){           returnObj;//这里返回的是过滤后的对象         }       });页面中的使用。?1{{obj|filterName}}====>obj是要过滤的对象控制器中使用。  首先要注入$filter,使用的时候?1$filter("filterName")(要过滤的对象,参数1,参数2,...);...

angularJS中如何写自定义指令

对于指令,可以把它简单的理解成在特定DOM元素上运行的函数,指令可以扩展这个元素的功能例如,ng-click可以让一个元素能够监听click事件,并在接收到事件的时候执行angularJS表达式正是指令使得angularJS这个框架变得强大,并且正如所见,我们可以自己创造新的指令指令声明方法angular.module('freefedApp',[]).directive(name,function(){return{restrict:String,priority:Number,terminal:Boolean,template:StringorTemplateFunction:function(tElement,tAttrs)(...},templateUrl:String,replace:BooleanorString,scope:BooleanorObject,transclude:Boolean,controller:Stringorfunction(scope,element,attrs,transclude,otherInjectables){...},controlle...
首页上一页...7071727374...下一页尾页