• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.3.1
软件大小:62.5M
更新时间:5-24

按键精灵iOS版
立即下载

软件版本:1.3.5
软件大小:29.2M
更新时间:06-14

最新企业版UiBot
立即下载

软件版本:3.3
软件大小:282M
更新时间:08-06

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
返回列表 12345678» / 33
发新话题 回复该主题

[心得分享] 掌控POST(1) [复制链接]

1#
本帖最后由 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吧....


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

    已有13评分我要评分查看所有评分

    本主题由 超级版主 n15976906190 于 2015/10/17 23:29:51 执行 删除帖子 操作
    个人收藏
    QQ:2074137818
    2#

    post 是个好东西 到时候弄个总目录就好了 再来个实例 源码那就更好了

    3#


    4#

    学习学习学习学习

    5#

    真心感谢!!!!!

    6#

    thank you to share

    7#

    RE:掌控POST(1)修改

    8#

    与/回复主题
    RE:掌控POST(1)修改

    9#

    111111111111111111

    10#

    学习学习

    11#

    好牛逼

    12#

    只是试试能不能发言!

    13#

    掌控POST

    14#

    草草草草草草

    15#

    掌控POST(1)

    办公脚本
    自动操作
    网页填表
    数据库
    棋牌类游戏
    游戏练级任务主线
    模拟器,手机app操作脚本定制
    职业作者定制脚本
    16#

    感谢分享

    17#

    很给力

    18#


    19#

    学习了

    20#

        非常感谢!

    发新话题 回复该主题