ajax request VS normal request

ajax请求(asynchronized)与普通请求(synchronized)的报文头(Header)不同:

String reqType = request.getHeader("X-Requested-With");
if (null == reqType) {//normal request}
else if (reqType.equals("XMLHttpRequest")) {//ajax request}

1、request headers

  1. Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
  2. Accept-Encoding:gzip, deflate, sdch
  3. Accept-Language:zh-CN,zh;q=0.8,en;q=0.6
  4. Connection:keep-alive
  5. Cookie:BD_HOME=0; BD_UPN=12314353; BAIDUID=6D80EC15FB3F7D55F6CF21531B4789A2:FG=1
  6. Host:www.baidu.com
  7. Referer:http://news.baidu.com/
  8. Upgrade-Insecure-Requests:1
  9. User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36

response headers

  1. BDPAGETYPE:1
  2. BDQID:0xcc5e27ca0001088a
  3. BDUSERID:0
  4. Cache-Control:private
  5. Connection:keep-alive
  6. Content-Encoding:gzip
  7. Content-Type:text/html; charset=utf-8
  8. Cxy_all:baidu+1e0afc7905a9c9dcea7d6f252627f95b
  9. Date:Fri, 06 May 2016 06:35:43 GMT
  10. Expires:Fri, 06 May 2016 06:35:22 GMT
  11. Server:bfe/1.0.8.14
  12. Set-Cookie:PSTM=1462516543; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
  13. Set-Cookie:__bsi=17208040824016918998_00_2870_R_N_6_0303_C02F_N_I_I_0; expires=Fri, 06-May-16 06:35:48 GMT; domain=www.baidu.com; path=/
  14. Set-Cookie:H_PS_PSSID=1442_19713_18281_19805_19899_19559_19807_19843_19902_19861_17001_15263_12288; path=/; domain=.baidu.com
  15. Set-Cookie:BIDUPSID=6D80EC15FB3F7D55F6CF21531B4789A2; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
  16. Set-Cookie:BD_HOME=0; path=/
  17. Set-Cookie:BDSVRTM=0; path=/
  18. Transfer-Encoding:chunked
  19. Vary:Accept-Encoding
  20. X-Powered-By:HPHP
  21. X-UA-Compatible:IE=Edge,chrome=1

2、Ajax异步request headers

  1. Accept:text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01
  2. Accept-Encoding:gzip, deflate, sdch
  3. Accept-Language:zh-CN,zh;q=0.8,en;q=0.6
  4. Connection:keep-alive
  5. Cookie:BAIDUID=6D80EC15FB3F7D55F6CF21531B4789A2:FG=1; PSTM=1462516543; BD_HOME=0; H_PS_PSSID=1442_19713_18281_19805_19899_19559_19807_19843_19902_19861_17001_15263_12288; __bsi=17208040824016918998_00_2870_R_N_6_0303_C02F_N_I_I_0; BIDUPSID=5081A970DD87C74CFFBADF0B28A1AF39; BD_UPN=12314353
  6. Host:www.baidu.com
  7. Referer:https://www.baidu.com/
  8. User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
  9. X-Requested-With:XMLHttpRequest

Ajax异步response headers

  1. Cache-Control:private
  2. Connection:keep-alive
  3. Content-Length:95
  4. Content-Type:baiduApp/json; v6.27.2.14; charset=UTF-8
  5. Date:Fri, 06 May 2016 06:35:45 GMT
  6. Expires:Fri, 06 May 2016 07:35:45 GMT
  7. Server:bfe/1.0.8.14
  8. Set-Cookie:__bsi=16943568347195085118_00_0_I_R_1_0303_C02F_N_I_I_0; expires=Fri, 06-May-16 06:35:50 GMT; domain=www.baidu.com; path=/
时间: 2024-10-29 19:12:08

ajax request VS normal request的相关文章

request.getParameterValues与request.getParameter的区别

一. 简单的对比 request.getParameter用的比较多,相对熟悉 request.getParameterValues(String   name)是获得如checkbox类(名字相同,但值有多个)的数据.   接收数组变量 ,如checkobx类型     request.getParameter(String   name)是获得相应名的数据,如果有重复的名,则返回第一个的值 . 接收一般变量 ,如text类型 例: 1. 三个名字相同的text标签 <input type=&qu

request.getAttribute() 和 request.getParameter() 有何区别?

HttpServletRequest.getParameter("modelName"); 能取到想要的modelObject吗?经过测试之后,发现是不能的.后来想想,其他道理挺简单的,当两个Web组件之间为转发关系时,转发源会将要共享 request范围内的数据先用setAttribute将数据放入到HttpServletRequest对象中,然后转发目标通过 getAttribute方法来取得要共享的数据.而MVC中用的就是Web组件之间的转发啊!真是笨,怎么当时没有想到呢? 下面

Request.Form和Request和Request.querystring的区别

Request.Form是获取以POST方式提交的表单数据: Request.QueryString主要是获取地址栏参数或者以Get方式提交的数据 而Request则包含以上两种方式,会在Request.QueryString和Request.Form中都查询一遍变量.但是优先获取GET方式提交的数据,即Request.QueryString Request:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString.Form.ServerVariable中都搜寻一遍. 而且

asp.net Request、Request.Form、Request.QueryString的区别(转)

Request.Form:获取以POST方式提交的数据. Request.QueryString:获取地址栏参数(以GET方式提交的数据). Request:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString.Form.ServerVariable中都搜寻一遍. 有时候会得到不同的结果.如果仅仅需要Form中的数据,但是使用了Request而不是Request.Form,那么程序将在QueryString.ServerVariable中也搜寻一遍.如果其中有同名的项,

request.getparameter和 request.getattribute的差别

request.getAttribute():是request时设置的变量的值,用request.setAttribute("name","您自己的值");来设置值, request.getParameter():提取发送过来的參数如:本网页 request.getParameter 是用来接受来自get方法或post方法的參数 <form method=post> <form method=get> <a href="1.j

android模拟器 报错:X Error of failed request: BadRequest (invalid request code or no such operation)

最近在ubuntu12.04上学习python,python2.7 python3.2差别还是蛮大的,就想着学习较新的 升级后 结果出现 输入法不显示   update-manager 和  add-apt-repository不能用,android的模拟器也打不开. 罪魁祸首直至python 因为python3.2没有往上兼容,导致从python2.7升级到3.2 很多依赖之前2.7版本的功能无法使用 如何解决python升级的问题 请 http://book.51cto.com/art/20

request.getAttribute()与request.setAttribute()

request.getAttribute("nameOfObj")可得到JSP页面一表单中控件的Value.其实表单控件中的Object的 name与value是存放在一个哈希表中的,所以在这里给出Object的name会到哈希表中找出对应它的value. 而不同页面间传值使用request.setAttribute(position, nameOfObj)时,只会从a.jsp到b.jsp一次传递,之后这个request就会失去它的作用范围,再传就要再设一个 request.setAt

request.getParameter()与request.setAttribute()的区别

 request.getParameter()与request.setAttribute()的区别 2009-04-23 15:26:04 request.getParameter(),request.setAttribute()区别如下: (1)request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据,request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段. (2)reques

基于request.getAttribute与request.getParameter的区别详解

HttpServletRequest类既有getAttribute()方法,也有getParameter()方法,这两个方法有以下区别:1.HttpServletRequest类有setAttribute()方法,而没有setParameter()方法:2.当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数: 例如,假定welcome.jsp和authenticate.jsp之间为链接关系,welcome.jsp中有以下代码:代码如下: <a hre