本帖最后由 michael3636 于 2015-5-1 18:05 编辑

PART 1正名: "POST" 这个叫法是很不科学的,必须正名,它真的真名是:XHR(Xml Http Requset)

垫底的知识点:

浏览器是如何工作的(按键论坛为例)当我们打开浏览器,在里面的输入网址(http://bbs.anjian.com),然后按下回车之后:

浏览器连接DNS服务器:把按键的域名域名解析为IP地址(117.27.152.245:80),域名是为了让我们人类好记和容易理解而存在的.真正http通讯,它所需要的永远是IP地址.

当浏览器得到IP地址以后:连接这个按键论坛的IP

连接成功后:向地址服务器发送消息,消息永远分2个部分浏览器自己发给服务的消息:比如:我是啥浏览器,我的工作系统是什么系统,我能处理什么格式的文件,我比较偏向简体中文的网页语言,我从什么网址来到你这个服务器的等等...我们使用者向服务器提交的请求:比如我要去的地方是按键的综合讨论板块 等等 4.按键服务器接受到我们的请求以后开始工作了:

首先.给浏览器发个应答信息,意思是告诉浏览器,你的信息我收到了.我打算干啥.这个信息是用数字表达的..不同的数字代码不同的含义比如:200(代表我收到了,下面我将开始发给你你所请求的内容)301(我收到了,你去我给你的网址服务器拿吧,下面我把网址发给你)304(我收到了,你从缓存去拿网页吧..我就不发了)400(我收到了..但是你发的是啥啊我看不懂)404(我收到了,但是你请求的东西不存在啊)等等

如果服务器返回的数字是200,这个工作才存在,服务器给浏览器发送数据,数据也包括2个内容,发给浏览器本身的和发给我们的,发给浏览器的有:我是啥服务器,我发给你的时间是什么时间(服务器的时间哦,,大家想到点啥?),我发给你的内容是用什么方式压缩的,我发给你的内容一共多长,我发给你的网页是用什么字符编码的,等等等 顺便提一下:cookie也是在这发的......第2部分:发给我们的网页的内容 5.浏览器开始接受服务器发来的内容,根据服务器发给浏览器本身的东西,开始工作,哦..你用gzip压缩过啊..我就用gzip方式解 压, 哦,你用gbk编码的啊..我得用gbk解码,哦你发的cookie啊..我该存的存,该改的改,,该删的删...哦,这是你的网页源文件啊..我收收收..

6.数据接收完成后,浏览器开始处理数据了,网页里的代码该执行的执行,网页里的图片和文件该下载的下载(这类资源文件是不包含在网页里的,网页里只有一个链接,浏览器得灯具链接去下载才能得到),根据网页里的css内容,基于网页元素进行排版,最终生成网页,显示在我们眼前

7.响应用户的各种操作,根据用户的操作做出相应的行为,或者是提交表单.或者去是一个链接,或者是运行一段js代码等等

以上,就是浏览器的工作流程,当我们在浏览器里点击链接或者输入地址的后,,它就和服务器重复的进行如上的工作,从而让我们看到并操作网页

一些补充的知识点:

一张网页远远不止是一次http请求所得,是很多次请求的综合体:我们看到的图片/听到的声音/很多js代码/很多css规则/他们都是以文件形式存在的,浏览器得根据网页得内容去分别下载网页是带有代码的,浏览器是会执行代码的,编写这个代码的语言是javascript,也是种脚本语言,IE内核的浏览器支持2种脚本语言:javascript和vbs(IE12以前是这样的,,,据传IE12也开始不支持vbs了) 其他内核浏览器只支持javascript,真因为如此,所以现在的网页都只带一种代码,javascript,简称js

同一个网址为啥他显示的是中文版的,我显示的是英文版的?答案在上面的3,浏览器向服务器发的语言偏好不一样导致的(前提是服务器得有同一个网页请求得不同语言版本!!!)

看到的网页和源文件对不上? 因为网页里的js代码带有改变网页的内容,浏览器执行了这些代码..网页内容被js改过了,所以不一样了.

Cookie是啥: 所有http服务器有个特点,他们没有记忆力,当你打开一个网页,马上再去打开的时候,他们压根是不知道你几秒前曾经来过,为了让服务器克服这个毛病..cookie就诞生了,,,他们由服务器发过来并被浏览器保存,浏览器每次请求都会带着保存目标服务器的曾经给过它的cookie...服务器不认识你,,但是它认识cookie..它通过cookie间接的认识..并且也根据cookie的内容知道你曾经在它那干了点啥.......比如:你登陆过..登陆名是什么..你上次浏览网站是什么时候,,,你浏览过哪些页面..等等等等...这些信息都直接或者间接的来自cookie...

Catche是啥:Catche就是缓存,是为了节省带宽和提高网页显示速度而存在的,它是网页的拷贝副本.除了你的浏览器设置,服务器也会告诉浏览器启不启用缓存功能...当他返回304的时候..浏览器就从缓存读网页了..同时,网站也不会发给你网页了..这就节省了服务器的带宽了..同时,浏览器从硬盘读网页速度当然远远快于服务器传给你网页..你的显示也就快了....上网体验也就好了 好了,让我们整理下浏览器的功能吧:

浏览器功能=通过http协议取得网页源文件,并且根据服务器的要求处理数据(cookie和Catche) +下载源文件里指定的各种资源文件+执行js脚本代码+根据css规则进行网页排版并最终显示再进一步:浏览器功能=XHR +下载源文件里指定的各种资源文件+执行js脚本代码+根据css规则进行网页排版并最终显示

所以XHR的功能大家也明白了XHR:通过http协议取得网页源文件,并且根据服务器的要求处理数据(cookie和Catche)的这么个玩样.也就是实现了上面浏览器功能的1--5的步骤个人补充:其实这么定义是根本不全面和完整的.我完全是基于我们在按键里使用它的功能来定义的.在按键里..我们也就是用到了HR(Http Reauqest)功能.X(Xml,一种文档格式,在网页应用上有举足轻重的地位)压根用不上,大家将就着看吧....那为何叫XHR而不是叫HR呢....全世界都这么叫嘛..我总不成为了按键改成HR吧....

啰嗦完了,我尽量用了最最普通的文字去解解释所有涉及的知识概念,可能不是很精确.大家谅解吧..毕竟我的期望是所有人都能看懂!!!

按键精灵post教程_掌控POST(1)相关推荐

  1. 按键精灵post教程_【按键精灵教程】更为强大的HTTP方法

    金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚 ...

  2. c语言接水果游戏喜庆丰收,【教学设计】我爱游戏_掌控板12_接水果

    我爱游戏_掌控板_接水果 一.基本信息 作品名称我爱游戏_掌控板_接水果 作者姓名于飞 作者单位嘉善信息技术工程学校 教材名称<慧编程> 教材类型自编教材 教材简介自编校本教材,作为学生自 ...

  3. 按键精灵 getcursorpos没有用_给你们想要的一键输出II按键精灵脚本开发教程

    按键精灵能为我们做什么 有人会说,按键精灵不就是代替我们按键盘嘛,当我们不玩的时候他替我们不停的按键盘,防止我们暂离掉线. 其实按键精灵能做的远远不止这些,按键精灵的脚本语言是基于VBS的,理论上VB ...

  4. arduino nano 蓝牙_掌控板IO接口编程入门 | 用Arduino玩转掌控板(ESP32)系列

    众所周知,掌控板在创客教育中用的非常广泛,它是一块基于 ESP32 的学习开发板.大家对掌控板编程,用的比较多的都是图形化编程的方式,比如 mPython.Mind+ 等.但是,既然掌控板是基于 ES ...

  5. VB.net或者C#编写按键精灵DLL教程

    首先创建一个类库 然后删除掉默认的类,当然留着也可以 接下去添加 新建项 然后添加COM类 随便取一个名字,记住,不能中文,不能中文,不能中文 可以编写任意函数代码 <ComClass(aabb ...

  6. python 按键精灵 办公自动化 方便_按键精灵自动化办公插件

    1 懒人办公插件 在之前的院刊中,也分享过懒人办公插件.想必有不少童鞋都有使用过.那么,是什么原因让小编忍不住再次要分享这个插件呢?近期,懒人插件作者 lxj1985 再次更新了插件,更新之后的插件更 ...

  7. 掌控板教程 | 学会掌控板 + Siri 语音控制,只要半小时!

    话不多说,先看效果演示视频: B 站视频链接:https://www.bilibili.com/video/av63856715/ 腾讯视频链接:https://v.qq.com/x/page/i09 ...

  8. 按键精灵定义全局变量_按键精灵中如何定义和使用变量

    展开全部 按键的变量一般不用专门定义. 初始赋值的时候会自动定义为最适e69da5e887aa62616964757a686964616f31333365663466合的变量. 你的语句大概如下: a ...

  9. 按键精灵定义全局变量_按键精灵2014全局数组变量传递(支持静态与动态)V2

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区. 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 最新版按键精灵2014已支持数组全局变量了,也就意味着以后多线程不需要再借助插件或字符 ...

最新文章

  1. autocad不能画图_设计院老司机谈CAD:学习AutoCAD掌握方法技巧更重要
  2. python处理teradata数据库_Teradata数据库——你需要了解的基础知识
  3. Func与Action
  4. STL 之accumulate,adjacent_difference,inner_product,partial_sum
  5. 16行代码AC_蓝桥杯 2017年C组第三题 算式900(暴力解法+DFS解法)
  6. 华为漫画 | 什么是DSP?
  7. 东大OJ-Max Area
  8. 关于php的一些小知识!
  9. 等待线程3秒返回结果_Excel小白超级讨厌的计算,原来只用3秒就能出结果!
  10. 对磁盘做完整镜像(按扇区对扇区备份)的目的
  11. 进销存系统功能结构图
  12. hive 漫威the_2021年即将上映的漫威电影
  13. html 的scor属性,scrollheight属性
  14. 端口碰撞技术让开放端口更安全
  15. 数电课程设计之7段显示器8421BCD码转换器
  16. Android app内截屏监听
  17. 惠州周边适合春游的好地方
  18. Matlab中将多维数组转换为一维数组
  19. 点滴时间读完《十亿消费者》
  20. Java虚拟机的基本结构

热门文章

  1. Rails UVA - 514(栈)
  2. 简单的Java服务器和客户端的通信
  3. Python的第三方库fileType
  4. Apache Bench
  5. c++局部对象是什么_什么是Java内部类?
  6. java mysql nclob_java向oracle数据库Clob读取,写入数据
  7. python情感分析算法_Python 情感分析
  8. VUE页面实现加载外部HTML方法
  9. FastDFS多tracker配置
  10. 典型的DIV+CSS布局(左中右)