AJAX一
一.http协议
1.URL
|
http://www.baidu.com/md/index.html 结构:协议+主机名称+目录结构+文件名称 URL完整的结构 <scheme>://<user>:<pwd>@<host>:<port>/<path>; <params>?<query>#<frag> |
①scheme
|
方案,协议。以哪种方式获取服务器资源。 不区分大小写。常见的协议 http、https、ftp、file |
②<user>:<pwd>
|
登陆这个服务器的用户名和密码 |
③host
|
主机名称 127.0.0.1 ip地址 www.baidu.com 域名 表示你要访问的服务器,在网络上具体的门牌号码 |
④port
|
端口号 在主机上,程序开启服务,会对应一个唯一的端口号 端口号理论最大值 0~65535 不要修改0~1024的端口 |
⑤path
|
路径,结构目录,资源在服务器上存放的位置 |
⑥params
|
参数,跟踪状态的参数 保存在session/cookie |
⑦query
|
get方法提交请求时,问号后面的查询字符串 |
⑧#<frag>
|
锚点 |
2.HTTP协议
|
HyperText Transfer Protocol 超文本传输协议 规范了数据是如何打包和传递的(专门用于传递html文件) HTTP协议的历史,我们目前使用的版本 http/1.1
|
3.web请求原理
|
4.消息/报文 Message |
|
请求消息Request Message(请求起始行,请求头,请求主体) 响应消息Response Message(响应起始行,响应头,响应主体) |
5.请求消息Request Message
|
请求消息,客户端发送给服务器的数据块 由三部分组成,请求起始行,请求头,请求主体 |
①请求起始行
|
1.HTTP协议规定的请求的方法和Restful规则中的方法对比 Restful API是一种规则,利用http的已有的4个方法定义了4个行为,使用这个4个行为发送请求
|
|||||||||||||||
|
2.协议版本号 |
|||||||||||||||
|
3.请求的url |
②请求头
|
1.Host: www.tmooc.cn 客户端告诉服务器。我要访问www.tmooc.cn这个主机。 2. Connection: keep-alive 客户端告诉服务器,请开启持久链接 3. User-Agent: 告诉服务器,我这个浏览器的类型和版本号 4. Accept-Encoding: gzip 告诉服务器,我这个浏览器可以接收的压缩文件的格式 5. Accept-Language: zh-CN 告诉服务器,我这个浏览器可以接收的自然语言的类型 6. Referer: http://www.tmooc.cn/ 告诉服务器,当前的请求,是来源于哪个页面 |
③请求主体
|
formdata get/delete没有请求主体 post/put有请求主体 |
6.响应消息Response Message
|
响应消息,服务器发送给客户端的数据块 由三部分组成,响应起始行,响应头,响应主体 |
①响应起始行
|
HTTP/1.1 200 OK 1.协议版本号 http/1.1 2.响应状态码
3.原因短句,对响应状态码简短的说明 |
②响应头
|
1. Date: Thu, 04 Jul 2019 07:48:02 GMT 格林威治时间 告诉浏览器,服务器响应的时间 2. Connection: keep-alive 服务器告诉浏览器,我已经打开了持久链接 3. Content-Type: text/html 告诉浏览器,响应主体的类型是什么
|
③响应主体
|
服务器传递给浏览器的数据 |
总结
7.缓存
|
客户端将服务器响应回来的数据 进行自动的保存 当再次访问的时候,直接使用保存的数据 |
|
缓存的优点 1.减少冗(rong)余的数据传输,节省了客户端的流量 2.节省服务器带宽 3.降低了对服务器资源的消耗和运行的要求 4.降低了由于远距离传输而造成的加载延迟 |
|
缓存原理,新鲜度和过期
1.请求--无缓存--连接服务器--存缓存--客户端渲染 2.请求--有缓存--够新鲜--使用缓存--客户端渲染 3.请求--有缓存--不新鲜--连接服务器确认是否过期--没过期--更新缓存新鲜度--客户端渲染 4.请求--有缓存--不新鲜--连接服务器确认是否过期--过期--连接服务器--存缓存--客户端渲染 |
①操作缓存,需要前端和后端都写代码
|
缓存相关的消息头 Cache-Control: max-age=0 单位是s 从服务器将文档传到客户端之时起 此文档处于新鲜的秒数,是一个相对时间 |
②修改请求消息头
|
<meta http-equiv="Cache-Control" content="max-age=3600"> 语法: <meta http-equiv="消息头属性名称" content="值"> |
8.HTTP性能优化
|
HTTP的连接过程 发送请求-->建立连接-->服务器处理请求-->访问资源 -->构建响应-->发送响应-->记录日志 |
①http连接的性能优化
|
1.减少连接创建的次数(开启持久连接) 2.减少请求的次数(代码设计更合理) 3.提高服务器端运行的速度 4.尽可能的减少响应数据的长度 |
9.安全的HTTP协议,HTTPS
|
HTTPS,是安全版本的http协议 S:SSL为数据通信提供安全支持 1.客户端发送请求--->ssl层加密--->服务器接收到加密文件--->SSL层解密,得到请求明文,对请求做处理 2.服务器发送响应--->SSL层加密---->客户端得到加密文件--->ssl层解密,得到响应明文,解析执行响应内容 |
二.Dom操作(简单dom操作)
|
ajax提交请求,不使用form表单 但是form表单自带收集数据的功能 如果不用form,就没有自动收集数据的功能了 我们需要使用js 的dom操作,手写代码,收集数据 |
1.完整的JavaScript的组成
|
1.js核心代码:ECMA Script ES6 2.DOM Document object Model 文档对象模型 就是为了能够操作html中元素的(内容,值,样式) 3.BOM Browser object Model 浏览器对象模型 让js能够动态操作浏览器 |
2.使用js的dom获取页面数据
①找到元素对象
|
获取html的元素对象 var obj=document.getElementById("元素id"); document--->当前html文档的对象 |
②获取/修改这个元素的值/内容
AJAX一的更多相关文章
- jQuery之ajax实现篇
jQuery的ajax方法非常好用,这么好的东西,你想拥有一个属于自己的ajax么?接下来,我们来自己做一个简单的ajax吧. 实现功能 由于jq中的ajax方法是用了内置的deferred模块,是P ...
- Ajax及跨域
概念 Ajax Ajax,Asynchronous JavaScript and XML,字面意思:异步的 JavaScript 和 XML,是指一种创建交互式网页应用的网页开发技术. 用于异步地去获 ...
- 一个粗心的Bug,JSON格式不规范导致AJAX错误
一.事件回放 今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...
- ABP文档 - Javascript Api - AJAX
本节内容: AJAX操作相关问题 ABP的方式 AJAX 返回信息 处理错误 HTTP 状态码 WrapResult和DontWrapResult特性 Asp.net Mvc 控制器 Asp.net ...
- ajax异步请求
做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...
- 调用AJAX做登陆和注册
先建立一个页面来检测一下我们建立的用户名能不能用,看一下有没有已经存在的用户名吗 可以通过ajax提示一下 $("#uid").blur(function(){ //取用户名 va ...
- Ajax 概念 分析 举例
Ajax是结合了访问数据库,数据访问,Jquery 可以做页面局部刷新或者说是页面不刷新,我可以让页面不刷新,仅仅是数据的刷新,没有频繁的刷页面,是现在比较常用的一种方式做页面那么它是怎么实现页面无刷 ...
- ajax
常见的HTTP状态码状态码:200 请求成功.一般用于GET和POST方法 OK301 资源移动.所请求资源移动到新的URL,浏览器自动跳转到新的URL Moved Permanently304 未修 ...
- 学习笔记之MVC级联及Ajax操作
由于刚转型到MVC,MVC的架构模式很多不是很清楚,比如今天就想做个级联的操作,因为之前的ASP.NET的方式是通过:控件-->添加事件-->后台编写级联事件进行触发,但是这个MVC就不同 ...
- javascript表单的Ajax 提交插件的使用
Ajax 提交插件 form.js 表单的下载地址:官方网站:http://malsup.com/jquery/form/ form.js 插件有两个核心方法:ajaxForm()和ajaxSubmi ...
随机推荐
- 前端日期时间处理建议使用Momen
使用方法 下载: http://momentjs.cn/downloads/moment.js 多语言版本:http://momentjs.cn/downloads/moment-with-local ...
- php---算法和数据结构
<?php header("content-type:text/html;charset=utf-8"); $arr = array(3,5,8,4,9,6,1,7,2); ...
- material UI中子组件样式修改的几种方案研究
material UI是一个流行的与React配套的前端UI框架,对于开发者而言,熟悉它的样式修改方案是必要的.但目前相关资料并不直观,并且没有总结到一起.如果对相关特性不太清楚,开发者很可能会在 ...
- db2 锁表
2019独角兽企业重金招聘Python工程师标准>>> 查询锁表情况 db2 => get snapshot for locks on databasename 可以看到什么表 ...
- MySQL分页查询的性能优化
MySQL limit分页查询的性能优化 Mysql的分页查询十分简单,但是当数据量大的时候一般的分页就吃不消了. 传统分页查询:SELECT c1,c2,cn… FROM table LIMIT n ...
- 初识DP动态规划
一.多阶段决策过程的最优化问题 在现实生活中,有类活 动的过程,由于 它的特殊性,可将过程分成若干个互相阶段.在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果.当阶段决策的选取不是任意确 ...
- 算法——Java实现队列
顺序队列: 概念: 队列是一种先进先出的线性表,只允许在一端插入,另一端删除.允许插入的一端称为队尾,允许删除的一端称为队头 顺序队列的实现: import org.junit.jupiter.api ...
- Nodejs异步编程
异步函数:异步函数是异步编程语法的终极解决方案,它可以把异步代码写成同步的形式,让代码不再有回调函数嵌套,使代码变得更清晰. const fn = async () =>{}; async f ...
- 【HBase】带你了解一哈HBase的各种预分区
目录 简单了解 概述 设置预分区 一.手动指定预分区 二.使用16进制算法生成预分区 三.将分区规则写在文本文件中 四.使用JavaAPI进行预分区 简单了解 概述 由上图可以看出,每一个表都有属于自 ...
- c++(qt)程序员微信群
关注微信公众号"程序员成长日志",回复关键字"c++"扫码进群 本群主要为大家解决工作中遇到的问题遇到的问题发到群里大家集思广益平时可以瞎扯不定期红包




