2019-04-26-day41 Web服务基础

第1章 Web服务基础

1.1 HTTP服务的重要基础

1.1.1 用户访问网站基本流程

  我们每天都会使用Web客户端(浏览器)上网浏览网页,当我们在浏览器里输入网站地址时,很快就会看到网站的内容,那么在其背后是怎样实现流程呢?下面就为大家讲述从用户输入网址到看到网站内容的完整流程。
  第一步:当用户在浏览器里输入www.etiantian.org网站地址后,系统首先会查找系统本地的DNS缓存及hosts文件信息,确定是否存在www.etiantian.org域名对应的IP解析记录,如果有就直接获取IP地址,然后去访问这个IP地址对应域名的服务器。
  第二步:如果客户端本地DNS缓存及hosts文件没有www.etiantian.org域名对应的解析记录,系统会把浏览器的解析请求发送给客户端本地设置的DNS服务器地址(通常称为LDNS,即Local DNS)解析,如果LDNS服务器的本地缓存有对应的解析记录就会直接返回IP地址给客户端,如果没有,则LDNS会负责继续请求其他的DNS服务器。
  第三步:LDNS通过向其他DNS服务器请求对www.etiantian.org域名的解析,会获取到来自授权服务器对域名的最终IP解析记录(例如1.1.1.1)。
  第四步:LDNS把来自授权服务器的IP解析记录发给客户端浏览器,并把该域名和IP对应解析缓存起来,以便下一次更快的返回相同解析请求的记录。
  第五步:客户端获得了www.etiantian.org对应的IP地址,接下来,浏览器会请求获得IP地址对应的网站服务器。
  第六步:网站服务器接收到客户的请求并响应处理,将客户请求的内容返回给客户端浏览器。至此,一次访问浏览网页的完整过程就完成了。

image.png

1.1.2 DNS系统解析基本流程

1、DNS简介
  DNS,全称Domain Name System,在一个网站运行中起到了至关重要的作用,其只要作用是把网站域名解析为对应的IP地址。这个从域名到IP的解析过程,被称为A记录。
  DNS系统除了负责这个最重要的A记录解析外,还有很多功能,例如:
1)设置CNAME别名记录,这个别名解析功能常被CDN加速服务商应用。
2)设置MX邮件记录,在购买或搭建邮件服务时会被用到。
3)设置PTR记录,反向解析,即把IP地址解析为对应的域名,和A记录的解析相反,此功能在邮件服务等业务中会用到。
注意:DNS和邮件服务不要搭建,容易出现问题。
DNS系统的架构类似于一颗倒挂着的树,顶点是根,用点(“.”)来表示,下图为DNS系统的树状结构图:

image.png

2、DNS解析流程
(1)DNS解析流程说明
  第一步:客户端用户在浏览器里输入www.etiantian.org网站地址后回车,系统首先会查找系统本地的DNS缓存及hosts文件信息,确定是否存在www.etiantian.org城名对应的IP解析记录,如果有就直接获取到IP地址,然后去访问这个IP地址对应的www.etiantian.org域名的服务器。
  第二步:如果客户端本地DNS缓存及本地hosts文件没有www.etiantian.org域名对应的解析记录,那么,系统会把浏览器的解析请求发送给在客户端本地设置的DNS服务器地址(LDNS,即Local DNS)解析,如果LDNS服务器的本地缓存有对应的解析记录就会直接返回IP地址给客户端;如果没有,则LDNS会负责继续请求其他的DNS服务器。
  第三步: LDNS从DNS系统的根开始请求对www.etiantian.org域名的解析,根DNS服务器在全球一共有13台,根服务器下面是没有www.etiantian.org域名解析记录的,但是根下面有www.etiantian.org对应的顶级域.org的解析记录,因此,根会把.org对应的DNS服务器地址返回给LDNS。
  第四步: LDNS获取到.org对应的DNS服务器地址后,就会去.org服务器请求www.etiantian.org域名的解析,而.org服务器下面也没有www.etiantian.org域名对应的解析记录,但是有etiantian.org域名的解析记录,因此,.org服务器会把etiantian.org对应的DNS服务器地址返回给LDNS。
  第五步:同理,LDNS获取到etiantian.org对应的DNS服务器地址后,就会去etiantian.org服务器请求对www.etiantian.org域名的解析。
  第六步: etiantian.org域名DNS服务器会把www.etiantian.org对应的IP解析记录(例如1.1.1.1)发给LDNS。
  第七步: LDNS把来自授权DNS服务器的与www.etiantian.org对应的IP解析记录发给客户端浏览器,并且LDNS会在本地把域名和IP的对应解析记录缓存起来,以便下一次更快地返回相同解析请求的记录。至此,整个DNS的解析流程就完成了。
(2)DNS解析流程图

image.png

1.2 HTTP协议

1.2.1 HTTP协议简介

  HTTP协议,全称为HyperText Transfer Protocol,中文名为超文本传输协议,是互联网中最常用的一种网络协议。 HTTP的重要应用之一是WWW服务。
  HTTP协议是互联网上常用的通信协议之一。它有很多的应用,但最流行的就是用于Web浏览器和Web服务器之间的通信,即WWW应用或称Web应用。
  WWW,全称为World Wide Web,常称为Web。它是目前互联网上最受用户欢迎的信息服务形式。HTTP协议的WWW服务应用的默认端口为80,另外一个加密的WWW服务应用https的默认端口为443,主要用于网银、支付等和钱相关的业务。

1.2.2 HTTP请求方法

  在HTTP通信中,每个HTTP请求报文都包含一个方法,用以告诉Web服务器端需要执行哪些具体的动作。下表是一些常用的HTTP请求方法。

HTTP方法 作用描述
GET 客户端请求指定资源信息,服务端返回指定资源
HEAD 只请求响应报文中的HTTP首部
POST 将客户端的数据提交到服务器
DELETE 请求服务器删除Request-URI所标识的资源
MOVE 请求服务器将指定的页面移至另一个网络地址

1.2.3 HTTP状态码

  HTTP状态码是用来表示Web服务器响应HTTP请求状态的数字代码,一般是一个三位数字代码,作用是告知Web客户端此次请求是否成功,或者是否要采取其他的动作方式。
状态码可以分为五大类,如下表所示

状态码范围 作用描述
100~199 用于指定客户端相应的某些动作
200~299 用于表示请求成功
300~399 用于已经移动的文件,并且常被包含在定位头信息中指定新的地址信息
400~499 用于指出客户端的错误
500~599 用于指出服务器的错误

生产场景中常见的状态码及描述

状态代码 详细描述说明
200-OK 服务器成功返回网页
301-Moved Permanently 永久跳转,所请求的网页将永久跳转到被设定的新位置
403-Forbidden 禁止访问
404-Not Found 服务器找不到客户端请求的指定页面
500-Internal Server Error 内部服务器错误,服务器遇到了意料不到的情况,不能完成客户的请求。
502-Bad Gateway 坏的网关
503-Server Unavailable 服务当前不可用
504-Gateway Timeout 网关超时

1.2.4 HTTP报文

  HTTP报文分为两种,一种是从客户端发往服务器的HTTP报文,称为请求报文;另一种是从服务器发往客户端的报文,称为响应报文。
1、HTTP请求报文介绍
  http请求报文由请求行、请求头、空行和请求报文主体组成。

报文格式 报文信息
请求行 请求方法 网址 协议版本
请求头 字段名1:值1
字段名2:值2
……
空行 空白无内容
请求报文主体 GET方法没有请求报文主体,POST方法才有

其中:请求行有请求方法、网址、协议版本组成,中间用空格分隔。
常见的请求头部信息:

请求头信息 说明
Accept:image/gif,image/jpeg 媒体类型
Accept-Language:zh-cn 语言类型
Accept-Encoding:gzip,deflate 支持压缩
User-Agent:Mozilla/4.0(compatible;MSIE6.0;Windows NT;……) 客户端类型
Host:www.etiantian.org 主机名

2、HTTP响应报文介绍
  HTTP响应报文由起始行、响应头部、空行和响应报文主体组成。

报文格式 报文信息
起始行 协议版本 数字状态码 状态信息
响应头 字段名1:值1
字段名2:值2
……
空行 空白无内容
响应报文主体 <html>
<head><title>oldboy's blog</title></head>
<body>
I am oldboy,mysql blog is https://oldboy.blog.51cto.com
</body>
</html>

3、HTTP报文请求应答流程详图


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

推荐阅读更多精彩内容