服务器请求和响应笔记

饥人谷_李栋


1.基本概念
2.动词get 和 post 区别
3.服务器 请求、响应过程
4.form表单的默认提交动作
5.lablel、input 关联
6.取form的name.value的方法
7.post提交
8.实例


一、基本概念

  • 请求(request) 响应(response)
    请求行 =动词 路径 版本
    请求头 =名字 :value
    空行
    消息体(包体)

二、动词get 和 post 区别

1) 触发方式不同
->触发get

  • 地址栏输入url
  • img src=...> <script src=...>
  • 请求外部css文件
  • $.get()

-> 触发post//是非幂等的

  • <from>提交
  • $.post()
    // $.post(url,date,success,dataType)

2) get 无body;post有body(空行+消息体)
3) 语义不同
get资源 post 资源
//http协议没规定,是很多server软件看到get 不去读它的body,so..

三、服务器 请求、响应过程
//以koa为例Koajs application starter template

  1. 路由 请求路径的时候 调用index方法
  2. index方法渲染index.hbs文件
  3. index.hbs文件的内容会作为响应返回给浏览器

//可以这么理解:

  1. 看你请求那个路径,
  2. 根据路径调用方法
  3. 方法渲染html文件

四、form表单的默认提交动作

  1. 如果form表单里面有 type=“submit”
  2. 当我们在任意一个input里面点 回车/ 提交 按钮的时候
  3. 会把input里面所有含有 name的value收集起来组成字符串

//post请求会把所有name收集起来 (以name1:xx&name2:xx的形式) 放到消息体里面
//post响应会拿到所有name 然后渲染html

//form 的get请求把所有name收集起来(以?name1:xx&name2:xx的形式)放到查询参数里面

五、内容、input 关联
1.普通用法

<lable for='input1'>内容:</lable><input id='input1' type='text' name='name1'>
//效果 点lable input就获得焦点了

2.快捷方式

<lable>
    内容:<input type='text' name='name1'>
</lable>

六、取form的name.value的方法

  $('form').on('submit',function(){
     var form=this//dom
     console.log(form.phone.value)
     
  })

七、post提交

$.post(url,数据,成功后的callback)

url可以是:'/post2' '/' form.action
数据可以是: object({xxx:yyy,xx:yy}) string
成功后的回调: function(response){xxx}
//只有成功提交,错误的提交需要用到ajax方法
//response可能是对象或字符串,
//jason的话-> 服务器会变成jason,所以对象里面的key和value都是服务器决定的
//字符串 -> 返回字符串

ajax方法

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: callback,
  error:callback,
  dataType: dataType
});

八、实例
老规矩上具体实例

//index.hbs
//方法一
<script src="//code.jquery.com/jquery-1.9.1.min.js"></script>
 <script>
        $('form').on('submit', function(event){
            event.preventDefault()//阻止默认事件
           var form=this
           var name=form.name.value
           var phone=form.phone.value//收集字符串key、value
           $.post('/',{
            name:name,
            phone:phone//name=xingkongs&phone=123
           },)//构造post请求
        })
//方法二:      
        $.ajax({
            type: "POST",
            url: xxxx,
            data: {
                    name:name,
                    phone:phone
                },
                    success: function(response){
                    console.log(response)
                    var  name=response.name4
                    var  phone=response.phone4//这里的phone4就是服务器定的
                        alert('姓名:'+name+'\n手机:'+phone)
                },
            error:function(){
                    alert('服务器出错了!')
            },
                    dataType: dataType
        });
 </script>
 

koa服务器端代码

 //controllers/index.js
 module.exports = {
 post: function *(next) {
        var name = this.request.body.name
        var phone = this.request.body.phone//获取post请求的值
       
        // yield this.render('post.hbs', {
        //    name4: name,
        //    phone4: phone
        // });
            this.body={
                name4:name,
                phone4:phone//服务器定义response的key、value
            }
         yield next;
    }
}

路由部分代码

module.exports = function(app) {
    var Router = require('koa-router'),
        indexCtrl = require('../controllers/index');

    var router = new Router();

    router
        .get('/', indexCtrl.index)
        .get('/2', indexCtrl.index2)
         .get('/3', indexCtrl.index3)
        .post('/', indexCtrl.post)
        .post('/post2', indexCtrl.post2)
        .post('/post3', indexCtrl.index3)

    app.use(router.middleware());
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,193评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,306评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,130评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,110评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,118评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,085评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,007评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,844评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,283评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,508评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,395评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,985评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,630评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,797评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,653评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,553评论 2 352

推荐阅读更多精彩内容