基于浏览器的http普通请求与ajax请求
来源:互联网 发布:sql win7 64位下载 编辑:程序博客网 时间:2024/05/18 00:57
发起一个http请求,可以通过浏览器,也可以通过程序去发起。通过程序去发起http请求(比如java中HttpURLConnection),只要是http层的东西都是能够伪造的,当然大部分还是伪造header头字段。而通过浏览器去发起的http请求(包括ajax请求),一些常用的header字段(比如:referer,User-Agent等)是浏览器帮我们设定的,在网页里面一般我们是没法直接去重置他们的。不过可以通过一些方法间接去重置这些header字段,我了解的主要有如下两种方法:
1.以chrom浏览器为例,通过chrom的插件过滤目的网址,然后对访问这些网址的http请求重置header。参考插件: https://github.com/chenyoufu/modify-http-headers
2.通过代理软件fiddler,重置原始请求的header字段
基于浏览器的http请求分为普通请求和ajax请求,普通请求都是同步执行的,ajax请求可以同步也可以异步(默认异步)。当这两种请求到达服务端时候,我们可以通过x-requested-with这个header字段加以区分。如果是普通请求没有这个header,取到为null。如果是ajax请求,取到是XMLHttpRequest。
因为ajax请求header字段是可以设置的,我们能否重置这个header,伪装成普通请求呢?答案是没法彻底重置的。如果我们自己设置了x-requested-with这个字段,浏览器还是会去再设置一遍这个值。chrom和ie的做法是直接追加,即服务端打印的结果是:自定义的值,XMLHttpRequest。而火狐是直接打印:XMLHttpRequest。
另外如果我们在ajax请求中自行设置referer这个header也是没有效果的,浏览器会直接覆盖你所设置的值。
- 基于浏览器的http普通请求与ajax请求
- 基于浏览器的http普通请求与ajax请求
- 普通浏览器GET请求与Ajax的GET请求的区别
- AJAX请求和普通HTTP请求区别
- Ajax异步请求头部信息与普通请求的不同
- Ext下,ajax请求和普通http请求,session超时转到登录页面的解决方案
- Ext下,ajax请求和普通http请求,session超时转到登录页面的解决方案
- 使用struts2处理普通http请求和ajax请求的对比
- ajax请求,和普通的http url请求,有什么不一样?
- Ajax——浏览器发送的http请求
- XMLHTTPRequest/Ajax请求 和普通请求的区别
- 得到请求的类型 ajax和普通请求
- JavaScript的Ajax数据请求与浏览器兼容
- 一个简单的HTTP请求与应答基于socket
- C# 发起普通http请求
- Struts2 拦截器处理普通Http请求和Ajax请求时拦截配置
- Struts2 拦截器处理普通Http请求和Ajax请求时拦截配置
- Struts2 拦截器处理普通Http请求和Ajax请求时拦截配置
- C语言:结构错题
- 安卓面试知识点
- 四个案例认识Quartz2D:模拟UIImageView、圆形头像切割、打水印、截屏
- 层次聚类——自底向上方法
- Java线程面试题 Top 50
- 基于浏览器的http普通请求与ajax请求
- java synchronized详解
- JavaBean的使用
- Java NIO系列1:从操作系统的角度剖析I/O
- C++中string erase函数的使用(转载)
- iOS - 分类添加属性之关联引用
- 一个简单的MyBatis程序
- linux 下文件颜色
- 构造方法(方法重载)