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地址对应的网站服务器。
  第六步:网站服务器接收到客户的请求并响应处理,将客户请求的内容返回给客户端浏览器。至此,一次访问浏览网页的完整过程就完成了。

2019-04-26-day41 Web服务基础_第1张图片
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系统的树状结构图:

2019-04-26-day41 Web服务基础_第2张图片
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解析流程图

2019-04-26-day41 Web服务基础_第3张图片
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
……
空行 空白无内容
响应报文主体
oldboy's blog

I am oldboy,mysql blog is https://oldboy.blog.51cto.com

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


2019-04-26-day41 Web服务基础_第4张图片
image.png

你可能感兴趣的:(2019-04-26-day41 Web服务基础)