express开发上手记录(3)知识补充:http请求和响应

终于到了第三篇,这一篇我们重点学习目标是express关于http请求的api对象

在使用express搭建web服务器的时候,大部分工作都是从请求对象开始,从响应对象结束,这两个对象起源于Node,而Express对其进行了拓展。

1.Url的组成及其说明

    url 组成分为 协议 主机名 端口 路径 查询字符串 信息片段

用 http:// www.bind.com:3000/about?test=1&q=grunt#history 这个url做实例进行说明

1)协议

组成:http://

协议决定如何处理传输请求 我们主要是处理 http 和 https

当然常见的协议还有 ftp 和 file

2) 主机名

组成:www.bind.com

.com : 顶级域名

www :子域名

主机名为服务器的标识,运行在本地或者本地网络的服务器可以简单的表示(如localhost),而Internet环境下,主机名通常以一个顶级域名(TLD)结尾,比如.com 或者.net 。另外还会有子域名作为主机名的前缀 子域名可以是任何形式,通常以www最为常见,子域名通常是可选的

3)端口

组成:3000

每一台服务器都有一系列的端口号 有一些端口号比较特殊 ,比如 80 和 443 端口。如果省略端口号,则默认 80 端口负责http传输,而 443 端口负责https传输。

而如果不使用 80 端口或者 443 端口,就需要一个大于1023的端口号,通常选择比较容易记忆的端口号,比如3000 8080等

4)路径

组成:/about

URL中影响应用程序的第一个组成部分通常是路径(在前端开发中,前端开发的框架常常使用路径部分作为前端路由)

路径是应用中页面或者其他资源的唯一标识

5)查询字符串

组成:?test=1&q=grunt

查询字符串是一种键值对组合,它以?开头,并且键值对之间以&隔开,所有的名称和值必须是以URL编码的,JavaScript提供了一个嵌入式的函数encodeURIComponent来进行处理,例如,空格被+号替换,其它特殊字符被数字型字符替换

6)信息片段

组成:#history

信息片段(或称散列) 被严格限制在浏览器中使用,不会被传递到服务器,现在前端框架实现的单页面应用以及AJAX复应用非常普遍,而一开始信息片段只是用于给浏览器控制文档的锚点标志指定的部分

2.关于http请求的请求体和响应体

重点说明几个比较重要的报头内容

1)互联网媒体类型

内容消息报头非常重要,如果没有它,客户端很难判断如何渲染接受到的内容。内容类型报头就是一种互联网媒体类型。由一个类型,一个子类型以及可选的参数组成。例如text/html;chartset=UTF-8说明类型是text,子类型是html,字符编码是utf-8。

我么常见的Content-Type,Internet media type 和MIME type是可以互换的

2)请求体

除了请求报头之外,请求还有一个主题,一般GET请求没有主体内容,但是POST请求是有的

对于post请求的媒体类型 常见的媒体类型是 application/x-www-form-urlencoded 是键值对的简单编码,使用&来进行分隔

如果post请求需要支持文件上传,则媒体类型是multipart/form-data,这是一种更为复杂的格式

最后 前后端常用的ajax请求,常见的使用application/json application/xml

3)参数

其实参数这个词可以有很多的解释,因为在一次请求中,参数可以来自查询字符串,请求体,请求cookies或者指定的路由参数。而在node应用中,请求对象的参数方法会重写所有的参数,因此我们不需要深究,但是这会带来一些问题,比如在一个post请求中,如果一个来自查询字符串的参数名和请求体的参数名重名了,那我们会取哪个作为真正的参数名呢,这或许会带来一些困扰

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

推荐阅读更多精彩内容

  • 在用 Express 构建 Web 服务器时,大部分工作都是从请求对象开始,到响应对象终止。这两个对象起源于 No...
    秋枫残红阅读 847评论 0 2
  • Express 最近一个多月在用Express+MySQL写公司内部业务(商品订单数据分析)的一些简单的逻辑,天天...
    Eastboat阅读 2,432评论 0 0
  • 作为一名前端开发人员,肯定少不了要和网络打交道,因为要从服务器端拉取数据,从服务端获取数据最常用的方式还是通过HT...
    留七七阅读 31,933评论 0 52
  • HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。通常承载于T...
    逗留阅读 321评论 0 0
  • 转 原创地址 https://juejin.im/post/5e1870736fb9a02fef3a5dcb#he...
    crossme阅读 498评论 0 2