AJAX通讯协议
和通常了解的不同,AJAX和xml没有什么必然联系,虽然调用的对象名字是XmlHttp。
XmlHttp的通讯协议格式仅仅是HTTP协议。
请求格式:GET / HTTP/1.1/r/nAccept: */*/r/nUser-Agent: Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5)/r/nHost: localhost/r/nConnection: Keep-Alive/r/n/r/n
应答格式:HTTP/1.1 200 OK/r/n/r/n<br><br>hello ajax<br>
说明:http协议规定请求和应答都必须有http header,header必须指明HTTP版本。http header以两个换行"/r/n/r/n"作为结束标志。
然后说明一下server端如何影响xmlhttp的readystate:
当server发送数据给xmlhttp对象,则xmlhtpp对象的readystate会变成3,如果xmlhttp收到不符合HTTP协议的数据会立刻报错断开,错误信息通常为"The server returned an invalid or unrecognized response"。
当server端断开xmlhttp的tcp连接,则xmlhttp会对收到的数据进行解析,如果解析到了正确的http header,则xmlhttp对象的readystate会变成4,如果无法正确解析http header则xmlhttp对象会报错"The server returned an invalid or unrecognized response" 。
在深入了解AJAX通讯协议的基础上,可以产生一些有趣的应用。