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

传统的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. Get请求使用请求体传递参数会报400异常的问题

    问题描述: 前端使用Get请求并且使用请求体传递参数,后端使用@RequestBody注解封装参数,这时会出现400的异常信息. 解决方法: 1.Get请求不要使用请求体,使用请求体的话用POST请求 ...

  2. class 中的 构造方法、static代码块、私有/公有/静态/实例属性、继承 ( extends、constructor、super()、static、super.prop、#prop、get、set )

     part 1         /**          * << class 中的 static 代码块与 super.prop 的使用          *          * - ...

  3. Gimbal Lock欧拉角死锁问题

    技术背景 在前面几篇跟SETTLE约束算法相关的文章(1, 2, 3)中,都涉及到了大量的向量旋转的问题--通过一个旋转矩阵,给定三个空间上的欧拉角\(\alpha, \beta, \gamma\), ...

  4. 6、Arrays类

    Arrays类 Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和搜索) 常用方法 toString 返回数组的字符串形式 Arrays.toString(arr) Integer[ ...

  5. 以TrueType为例谈字形描述

    以TrueType为例谈字形描述 作者:哲思 时间:2022.9.17 邮箱:zhe__si@163.com GitHub:zhe-si (哲思) (github.com) 一.前言 在深入理解&qu ...

  6. HTTPS安全加固配置最佳实践指南

    转载自:https://www.bilibili.com/read/cv16067729?spm_id_from=333.999.0.0 0x02 HTTPS安全加固指南 描述: 当你的网站上了 HT ...

  7. Logstash: 如何创建可维护和可重用的Logstash管道

  8. 了解Elasticsearch写入磁盘的数据

    文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484171&idx=1&sn=985a71a ...

  9. Nginx配置中一个不起眼字符"/"的巨大作用

    文章转载自:https://mp.weixin.qq.com/s/QwsbuNIqLpxi_FhQ5pSV3w Nginx作为一个轻量级的,高性能的web服务软件,因其占有内存少,并发能力强的特点,而 ...

  10. ELK 性能优化实践 ---总结篇

    版本及硬件配置 JDK:JDK1.8_171-b11 (64 位) ES集群:由3台16核32G的虚拟机部署 ES 集群,每个节点分配 20 G 堆内存 ELK版本:6.3.0 垃圾回收器:ES 默认 ...