当我们在浏览器地址栏中输入一个网址,或者通过网页表单向服务器提交内容的时候,我们就开始与服务器进行交互。

传统的Web应用交互:

(1)用户触发一个Http请求到服务器,服务器对其进行处理后再返回一个新的HTML页到客户端。

(2)每次当服务器请求客户端提交的请求时,客户都只能空闲等待,哪怕只是一次很小的交互,只需从服务器得到很简单的一个数据,都要返回一个很简单的HTML页。

(3)而客户端每次都要浪费时间和带宽去重新读取整个页面。

Ajax即异步的JavaScript和XML(是一种标记语言,主要用来传递数据),是一种实现无页面刷新获取服务器数据的混合技术,只不过以前客户端和服务器之间传递数据是用的XML,现在主要用的是JSON这种轻格

式的标记语言。

 客户端和服务器

CS/BS:软件使用上的两种划分

(1)CS:Client/Server

PC客户端,服务器架构。

特点:重客户端,服务器主要相当于一个数据库,把所有的业务逻辑以及界面都交给客户端完成,优点是较为安全,缺点是b每次升级都需要重新安装,针对不同的操作系统,可移植性差。

(2)BS:Browser/Server 。

浏览器,服务器架构。

特点:基于浏览器访问的应用,把业务层交给服务器来完成,客户端仅仅做界面的渲染和数据的交换。优点在于只要开发服务器端,可以跨平台,可移植性强,缺点是安全性较低,用户体验差。

Web资源

什么是Web?Web网页,表示网络主机上供外界访问的资源。

1)静态Web资源:指Web页面中供人浏览的数据始终不变。

2)动态Web资源:指Web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容是变化的。

Web资源放在哪里?

1)所有的Web资源都放在一个服务器当中,这个web服务器既可以是本地的,也可以是远程的,一般实际应用中都是远程服务器。

2)Web服务器就是可以供外界访问web资源的一个软件,即web服务器安装在远程服务器上,根据对应的端口访问它

3)web资源放在指定的目录当中,就可以通过对应的端口在浏览器当中访问到。

URL地址

url地址=协议://主机地址:端口号/资源地址        http://www.itlike.com:80/index.html

主机地址可以理解为域名,每台电脑都会有个ip地址和其对应,域名通过dns和ip地址映射,这样我们就可以通过域名来访问这台电脑,然后再通过端口访问web服务器,没个web服务器有很多目录。

上面两个例子说明,www.baidu.com和i.cnblogs.com域名对应的ip地址分别为:36.152.44.95和116.62.230.66

Web资源访问流程

1)客户端:浏览器,Android程序,Ios程序,微信小程序...

2)服务器:php服务器,tomcat服务器,nodejs服务器...

3)思考:当我们在浏览器输入一个网址的时候为什么就能看到一个页面?

一个网址对应的就是一个ip地址,一个ip地址对应着一台电脑,通过ip地址找到对应的电脑,电脑当中安装有Web服务器,通过端口号找到对应服务器;找到对应服务器,服务器把页面返回给你,

这样的一个过程就是http请求的过程。

请求与响应

1)请求:把客户端请求发送给服务器

2)响应:服务器把你想要的数据发送给客户端

请求和响应都需要一定的格式:约定好客户端以什么样的格式把数据给服务器,约定好服务器以什么样的格式把数据给客户端,这个约定使用的就是Http协议。

Http协议

超文本传输协议,是互联网上应用最为广泛的一种网络协议,所有的www文件都必须遵守这个标准,设计http最初的目的是为了提供一种发布和接收HTML面的方法。

请求的发送方式:通过浏览器的地址栏、通过html的form表单、通过a链接的href、src属性。

Http协议的组成:包括请求和响应,请求和响应都是成对存在的,没有请求就没有响应。

当在浏览器中输入某个网址访问某个网站的时候,你的浏览器会将请求封装成一个Http请求发送给服务器站点,服务器接收到请求后会组织响应数据封装成一个Http响应返回给浏览器。

输入一个网址,可以看到请求和响应过程。

(1)Http请求

组成部分:请求行、请求头、请求体(POST请求才会有请求体)

请求方式:GET、POST

请求的资源:/node/form.html?username=myxq&pwd=1234

(2)Http响应

Http响应组成:响应头、响应行、响应体

响应行:主要要知道状态码

200:请求成功

302:请求重定向

304:请求资源没有改变,访问本地缓存。

404:请求资源不存在,通常是用户路径编写错误,也可能是服务器资源已删除。

500:服务器内部错误,通常程序抛异常。

响应体:响应体是服务器回写给客户端的页面正文,浏览器将正文加载到内存,然后解析渲染显示页面内容。

 常用请求方式:GET和POST

接下来就可以学习如何使用Ajax了,所需要的工具包括:客户端浏览器(这个已经有了)、web服务器(需要单独配置)

配置node服务器

1)安装node

链接:https://pan.baidu.com/s/1ccEn1jUnLSyTu9tvca4QPg

提取码:uedr

测试是否安装成功,执行:

node -v

npm -v

有上述提示表示安装成功

2)在联网的基础上安装express

执行 npm install -g express

执行 npm install -g express-generator     必须安装这个,不然创建express项目的时候会提示express命令没有找到

执行 express  -V

最后基于node创建一个web服务器,首先进入到某个目录下,例如:E:\学习资源\撩课学院Ajax\撩课-面向对象 游戏\撩课-面向对象+游戏\Day27-网络请求-ajax\代码,这个目录下

执行 express myServer --view=ejs,其中myServer 这个名称可以任取

然后在相应的目录下就会生成AjaxServer这个文件,然后还要按照提示安装下npm。

最后按照上面的提示,运行这个web服务器之后,客户端浏览器就可以访问这个服务器里面的资源了。

最后,千万不能关闭,否则服务器也将会关闭。

最后,测试一下如何访问该服务器:在浏览器中输入localhost:3000,其中3000是安装服务器软件时的默认端口。

如果想要离开,按ctrl+c

最后,如果你是使用WebStorm,勾选Coding assistance for Node.js

Ajax基础(上)的更多相关文章

  1. 史上最全的Ajax基础详解

    同步请求和异步请求 先解释一下同步和异步的概念: 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯 ...

  2. Web前端-Ajax基础技术(上)

    Web前端-Ajax基础技术(上) ajax是浏览器提供一套的api,用于向服务器发出请求,接受服务端返回的响应,通过javascript调用,实现通过代码控制请求与响应,实现网络编程. ajax发送 ...

  3. 【Java EE 学习 31】【JavaScript基础增强】【Ajax基础】【Json基础】

    一.JavaScript基础增强 1.弹窗 (1)使用window对象的showModelDialog方法和showModelessDialog方法分别可以弹出模式窗口和非模式窗口,但是只能在IE中使 ...

  4. HTML5,jQuery,ajax基础面试

    简要描述HTML5中的本地存储 答案: 很多时候我们会存储用户本地信息到电脑上,例如:比方说用户有一个填充了一半的长表格,然后突然网络连接断开了,这样用户希望你能存储这些信息到本地,当网络回复的时候, ...

  5. Ajax基础知识《一》

    对于网站开发人员,一定不会陌生的Ajax技术,本篇就让我们认识一下它,或许在日后的开发过程中我们就可以使用到.Ajax在那方面使用的比较多呢?答案:表单注册,传统的表单注册,有时需要填写大量的信息,当 ...

  6. Ajax基础2

    什么是服务器 网页浏览过程的分析 如何配置自己的服务器程序(AMP) 什么是Ajax 无刷新数据读取 异步,同步 Ajax基础(2) 使用Ajax 基础请求显示txt的文件 字符集编码 缓存,阻止缓存 ...

  7. Ajax基础--JavaScript实现

    ajax原理 1.ajax 即“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),也就是无刷新数据读取. 通俗地讲就是:AJAX 通过在后台与 ...

  8. jQuery基础---Ajax基础教程(二)

    jQuery基础---Ajax进阶 内容提纲: 1.加载请求 2.错误处理 3.请求全局事件 4.JSON 和 JSONP 5.jqXHR 对象 发文不易,转载请注明出处! 在 Ajax 基础一篇中, ...

  9. jQuery基础---Ajax基础教程

    jQuery基础---Ajax基础 内容提纲: 1.Ajax 概述 2.load()方法 3.$.get()和$.post() 4.$.getScript()和$.getJSON() 5.$.ajax ...

随机推荐

  1. Python入门系列(八)日期时间、数学、json

    日期时间 Python中的日期本身不是数据类型,但我们可以导入一个名为datetime的模块,将日期作为日期对象使用. import datetime x = datetime.datetime.no ...

  2. Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):5、Maven版本发布与后续版本更新(大结局)

    文章目录: Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1.JIRA账号注册 Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):2.PGP ...

  3. 使用 MAUI 在 Windows 和 Linux 上绘制 PPT 的图表

    我在做一个图表工具软件,这个软件使用 MAUI 开发.我的需求是图表的内容需要和 PPT 的图表对接,需要用到 OpenXML 解析 PPT 内容,读取到 PPT 图表元素的内容,接着使用 MAUI ...

  4. 《!--suppress ALL --> 在Android XML 文件中的用途是什么?

    <!--suppress ALL --> 在Android XML 文件中的用途是什么? 警告一次又一次地出现在谷歌地图的 XML 文件中,但是当我使用时,所有警告都被禁用.那么压制所有评 ...

  5. 践行初心|方正璞华爱心捐赠人脸识别测温系统WelComID

    近日,方正璞华向金鸡湖社区卫生服务中心捐赠了人脸识别测温系统.该设备集人员识别.体温检测等功能于一体,在人员进出的时候完成体温的检测,从而判断是否有异常人员等问题,有效节省人力成本.减少人员接触风险, ...

  6. 使用pktmon抓包

    在Windows上遇到网络问题,需要抓包的时候之前我们会使用netmon和Microsoft Message Analyzer.随着时间的推移,微软已经停止了对Microsoft Message An ...

  7. Netty内存池的整体架构

    一.为什么要实现内存管理? Netty 作为底层网络通信框架,网络IO读写必定是非常频繁的操作,考虑到更高效的网络传输性能,堆外内存DirectByteBuffer必然是最合适的选择.堆外内存在 JV ...

  8. 图与A*算法

    同时根据每条边的实际情况,采用权重来表示他们的不同,权重可以是负的. 往这个图中添加顶点的成本非常昂贵,因为新的矩阵结果必须重新按照新的行/列创建,然后将已有的数据复制 到新的矩阵中. 图的数据结构: ...

  9. VLAN的配置

    1 vlan的概念和作用 虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能.部门等因素将它们组织起来.相互之间的通信就好像它们在同一个网段中一样. 虚拟 ...

  10. Kubernetes 安全

    RBAC 权限控制 对资源对象的操作都是通过 APIServer 进行的,那么集群是怎样知道我们的请求就是合法的请求呢?这个就需要了解 Kubernetes 中另外一个非常重要的知识点了:RBAC(基 ...