【Javascript学习笔记】【查询HTTP请求+Ajax入门】

目录

  • 目录
  • Ajax
    • 理解同步和异步
  • HTTP请求
        • 完整的HTTP请求过程
        • 请求
        • 响应
      • 状态码
  • 基础
        • 创建 XMLHttpRequest 对象
        • XMLHttpRequest发送请求
        • XMLHttpRequest取得响应
  • 例子实战
      • #
  • 处理跨域——代理或JSONP方法
        • JSONP
  • 常用状态码
  • 实战代码Download
  • 快捷链接

Ajax

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。理解:在无需重新加载整个网页的情况下,能够更新部分网页的技术。

理解同步和异步

HTTP请求

计算机网络这门课有学到,想理解更多可尝试下载wiresharke,通过抓包了解里面请求得到的信息。其中HTTP请求,属于无状态请求,若要获取上次向服务器获取的信息,需重新请求,并不保留上次的信息。

完整的HTTP请求过程

  1. 建立TCP连接(3次握手)
  2. Web浏览器向Web服务器发送请求命令
  3. Web浏览器发送请求头信息(第一次握手)
  4. Web服务器应答(第二次握手ACK)
  5. Web浏览器发送应答头信息(第三次握手ACK)
  6. Web服务器向浏览器发送数据
  7. Web服务器关闭TCP连接

请求

GET/POST请求、请求URL、请求头信息(环境、身份)、请求体(正文)

响应

  1. 一个数字和一个文字组成的状态码,用来显示请求是成功还是失败
  2. 响应头信息:服务器类型,时间,内容类型,长度
  3. 响应体:正文

状态码

状态码常用3为数字构成。
1**(信息类):表示接收到请求并且继续处理
100——客户必须继续发出请求
101——客户要求服务器根据请求转换HTTP协议版本
2**(响应成功):表示动作被成功接收、理解和接受
200——表明该请求被成功地完成,所请求的资源发送回客户端
201——提示知道新文件的URL
202——接受和处理、但处理未完成
203——返回信息不确定或不完整
204——请求收到,但返回信息为空
205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件
206——服务器已经完成了部分用户的GET请求

3**(重定向类):为了完成指定的动作,必须接受进一步处理
300——请求的资源可在多处得到
301——本网页被永久性转移到另一个URL
302——请求的网页被转移到一个新的地址,但客户访问仍继续通过原始URL地址,重定向,新的URL会在response中的Location中返回,浏览器将会使用新的URL发出新的Request。
303——建议客户访问其他URL或访问方式
304——自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容,代表上次的文档已经被缓存了,还可以继续使用
305——请求的资源必须从服务器指定的地址得到
306——前一版本HTTP中使用的代码,现行版本中不再使用
307——申明请求的资源临时性删除

4**(客户端错误类):请求包含错误语法或不能正确执行
400——客户端请求有语法错误,不能被服务器所理解
401——请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
HTTP 401.2 - 未授权:服务器配置问题导致登录失败
  HTTP 401.3 - ACL 禁止访问资源
  HTTP 401.4 - 未授权:授权被筛选器拒绝
HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败
402——保留有效ChargeTo头响应
403——禁止访问,服务器收到请求,但是拒绝提供服务
HTTP 403.1 禁止访问:禁止可执行访问
  HTTP 403.2 - 禁止访问:禁止读访问
  HTTP 403.3 - 禁止访问:禁止写访问
  HTTP 403.4 - 禁止访问:要求 SSL
  HTTP 403.5 - 禁止访问:要求 SSL 128
  HTTP 403.6 - 禁止访问:IP 地址被拒绝
  HTTP 403.7 - 禁止访问:要求客户证书
  HTTP 403.8 - 禁止访问:禁止站点访问
  HTTP 403.9 - 禁止访问:连接的用户过多
  HTTP 403.10 - 禁止访问:配置无效
  HTTP 403.11 - 禁止访问:密码更改
  HTTP 403.12 - 禁止访问:映射器拒绝访问
  HTTP 403.13 - 禁止访问:客户证书已被吊销
  HTTP 403.15 - 禁止访问:客户访问许可过多
  HTTP 403.16 - 禁止访问:客户证书不可信或者无效
HTTP 403.17 - 禁止访问:客户证书已经到期或者尚未生效
404——一个404错误表明可连接服务器,但服务器无法取得所请求的网页,请求资源不存在。eg:输入了错误的URL
405——用户在Request-Line字段定义的方法不允许
406——根据用户发送的Accept拖,请求资源不可访问
407——类似401,用户必须首先在代理服务器上得到授权
408——客户端没有在用户指定的饿时间内完成请求
409——对当前资源状态,请求不能完成
410——服务器上不再有此资源且无进一步的参考地址
411——服务器拒绝用户定义的Content-Length属性请求
412——一个或多个请求头字段在当前请求中错误
413——请求的资源大于服务器允许的大小
414——请求的资源URL长于服务器允许的长度
415——请求资源不支持请求项目格式
416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段
417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求长。

5**(服务端错误类):服务器不能正确执行一个正确的请求
HTTP 500 - 服务器遇到错误,无法完成请求
  HTTP 500.100 - 内部服务器错误 - ASP 错误
  HTTP 500-11 服务器关闭
  HTTP 500-12 应用程序重新启动
  HTTP 500-13 - 服务器太忙
  HTTP 500-14 - 应用程序无效
  HTTP 500-15 - 不允许请求 global.asa
  Error 501 - 未实现
HTTP 502 - 网关错误
HTTP 503:由于超载或停机维护,服务器目前无法使用,一段时间后可能恢复正常

基础

创建 XMLHttpRequest 对象

var request=new XMLHttpRequest();

XMLHttpRequest发送请求

open(method,url,async)//发送请求:method=发送请求方法,url请求方法,async boolon值同步还是异步的 send(string)

举例子:

xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");

XMLHttpRequest取得响应

responseText 获得字符串形式的响应数据。
responseXML 获得 XML 形式的响应数据。

监听:readyState,获取XMLHttpRequest 的状态
onreadystatechange 共触发五次
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪

当readyState 等于 4 且状态为 200 时,表示响应已就绪

request.onreadystatechange=function()
{
    if (request.readyState==4 && request.status==200)
    {
    document.getElementById("myDiv").innerHTML=request.responseText;
    }
}

例子实战

#

处理跨域——代理或JSONP方法

子、主域名、或者端口不同,都属于跨域。

JSONP

常用状态码

200:服务器响应正常。
304:该资源在上次请求之后没有任何修改(这通常用于浏览器的缓存机制,使用GET请求时尤其需要注意)。
400:无法找到请求的资源。
401:访问资源的权限不够。
403:没有权限访问资源。
404:需要访问的资源不存在。
405:需要访问的资源被禁止。
407:访问的资源需要代理身份验证。
414:请求的URL太长。
500:服务器内部错误。

实战代码Download

(github:KuanG97) 下载实战代码 ClickHere》

快捷链接

全部React学习笔记的目录 Click Here>>
全部Javascript学习笔记的目录 Click Here>>
Less学习笔记 Click Here>>
安利一波前端开发推荐使用的工具 Click Here>>
ESLint问题记录 Click Here>>
github各类实战练习源码下载 Click Here>>
如果你觉得我的东西能帮到你,无限欢迎给我的github库点个收藏Star~0v 0~

你可能感兴趣的:(HTTP请求,Ajax,javascript,前端(js,html,css,less))