懂http协议和ajax的进来看下,有几个小问题?谢了!!


问题如下
1.通过html表单方式提交数据(可以指定get和post)和ajax方式请求的原理是一样的吗?

2.http协议里面的get 和post请求方式和ajax的get 和post是一回事吗?

这几个概念总是分不清

http Ajax JavaScript

ooxxoo 11 years, 7 months ago

不完全一样。 一般通过Form方式提交的数据会设置特殊的Content-Type: application/x-www-form-urlencoded, 也会改变location。 而通过Ajax请求可以自定义请求体类型Content-Type, 它的请求头部会设置“Connection”为“Keep-Alive“。 目前就想到这些差别了

錯的是世界 answered 11 years, 7 months ago

ajax提供了一种方式,使得在js中可以触发http请求。想当初ajax技术还没有出来的时候(那个时代大概是ie4的天下),只能通过浏览器跳转来刷新当前页面的内容。自从ajax技术出现后,大家逐渐习惯用js来触发http请求,并且这种请求不用刷新页面,然后在跟js中的DOM函数结合使用,就可以实现页面的局部刷新了。
所以说可以这么总结,ajax是一系列的js api,而http协议是一种网络通信协议。调用ajax函数的时候,可以实现http通信。

2很的看过来反 answered 11 years, 7 months ago

  1. 原理一样,只是请求的时候,header会不一样,比如ajax的请求头一般是 X-Requested-With:XMLHttpRequest , 服务器端可以通过这个头来判断是否是ajax请求。
永恒¢自由 answered 11 years, 7 months ago

ajax是一个技术点。post和get是http请求的方式,还有put,head,delete等方式。

两米下的氮磷钾 answered 11 years, 7 months ago

  1. ajax用的http协议。
sizen answered 11 years, 7 months ago

ajax 和 http 不是一個層面上的東西。

http (Hypertext Transfer Protocol) 是一種協議;
ajax (asynchronous JavaScript + XML) 是一種技術。

對於不是一個層面的東西,沒辦法簡單地說是、不是,只能說怎麼是、如何是。

ajax 當中的 get 與 html form 中的 get 等,同樣指的是用 http 中的一種特定 request method 傳輸數據。

泛泛而言,ajax get 是一個具體事物,比如某一張桌子,而 http get,是形相,是桌子的概念。
ajax get 和 html form get 的區別,就是這張桌子和那張桌子的區別,但他們都「是」桌子,「屬於」桌子,卻並不「等於」桌子。

更多 request methods 參見 http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

timote answered 11 years, 7 months ago

Your Answer