HTTP访问服务的相关解释

一、访问网站的基本流程

第一步:客户端用户在浏览器输入www.51cto.com网站,回车后,系统首先会查找系统本地的DNS缓存及hosts文件信息,确定是否存在www.51cto.com余名对应的IP解析记录,如果有就直接获取IP地址,然后去访问这个IP地址对应余名www.51cto.com的服务器。一般第一次请求的时候,DNS缓存是没有解析记录的,而hosts躲在内部临时测试时使用。

第二步:如果客户端本地DNS缓存及hosts文件没有www.51cto.com余名对应的解析记录,那么,系统会把浏览器的解析请求发送给客户端本地设置的DNS服务器地址(称为LDNS)解析,如果LDNS服务器的本地缓存有对应的解析记录就会直接返回IP地址给客户端;如果没有,则LDNS会负责继续请求其他的DNS服务器。

第三步:LDNS从DNS系统的根开始请求对www.51cto.com余名的解析,并针对各个层级的DNS服务器系统进行一系列的查找,最终会查找到51cto.com域名对应的授权DNS服务器,而这个授权DNS服务器正式企业购买域名时用于管理域名解析的服务器,这个授权服务器会有www.51cto.com对应的IP解析记录。如果此时没有,就表示企业的域名管理人员没有为www.51cto.com域名做解析设置,即网站还没有架设好。

第四步:51cto.com余名的授权DNS服务器会把www.51cto.com对应的最终IP解析记录发给LDNS。

第五步:LDNS把来自授权DNS服务器的www.51cto.com对应的IP解析记录发给客户端浏览器,并且它会把该域名和IP地址的对应解析缓存起来,以便下一次更快的返回相同解析请求的记录,这些缓存记录在指定的时间(DNS TTL)内不会过期。

第六步:客户端浏览器获取了www.51cto.com对应的IP地址,接下来,浏览器会请求获得IP地址对应的网站服务器,网站服务器接收到客户的请求并响应处理(此处的处理可能是数百台集群的服务器系统,也可能是一台云主机),将客户请求的内容返回给客户端浏览器。至此,一次访问浏览网页的完整过程也就完成了。

    附:

(1)查看windows客户端的本地缓存记录:

ifconfig /displaydns

(2)清楚Windows客户端本地缓存DNS记录:

ifconfig /flushdns

(3)Windows系统下的hosts域名解析记录位置:

C:\Windows\System32\drivers\etc\hosts

二、DNS系统解析基本流程

DNS简介

A记录----把余名解析为对应的IP地址。

CNAME别名记录--别名解析功能常备CDN加速服务商应用

MX邮件记录--MX记录功能,在购买或搭建邮件服务器时会被用到

PTR记录--反向解析,即把IP地址解析为对应域名,和A记录的解析相反,此功能在邮件服务业务中会用

DNS解析流程图

通过dig命令来实践理解DNS解析流程

[[email protected] ~]# dig +trace www.51cto.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> +trace www.51cto.com
;; global options: +cmd
.            47942    IN    NS    j.root-servers.net.
.            47942    IN    NS    f.root-servers.net.
.            47942    IN    NS    b.root-servers.net.
.            47942    IN    NS    h.root-servers.net.
.            47942    IN    NS    e.root-servers.net.
.            47942    IN    NS    g.root-servers.net.
.            47942    IN    NS    k.root-servers.net.
.            47942    IN    NS    l.root-servers.net.
.            47942    IN    NS    m.root-servers.net.
.            47942    IN    NS    i.root-servers.net.
.            47942    IN    NS    c.root-servers.net.
.            47942    IN    NS    a.root-servers.net.
.            47942    IN    NS    d.root-servers.net.
;; Received 228 bytes from 192.168.0.1#53(192.168.0.1) in 54 ms
## a-m一共13个DNS服务器,j.root-servers.net根DNS负责了此处的解析
com.            172800    IN    NS    a.gtld-servers.net.
com.            172800    IN    NS    b.gtld-servers.net.
com.            172800    IN    NS    c.gtld-servers.net.
com.            172800    IN    NS    d.gtld-servers.net.
com.            172800    IN    NS    e.gtld-servers.net.
com.            172800    IN    NS    f.gtld-servers.net.
com.            172800    IN    NS    g.gtld-servers.net.
com.            172800    IN    NS    h.gtld-servers.net.
com.            172800    IN    NS    i.gtld-servers.net.
com.            172800    IN    NS    j.gtld-servers.net.
com.            172800    IN    NS    k.gtld-servers.net.
com.            172800    IN    NS    l.gtld-servers.net.
com.            172800    IN    NS    m.gtld-servers.net.
;; Received 491 bytes from 198.97.190.53#53(198.97.190.53) in 352 ms
##解析com的一共有13个DNS服务器,.com的a.gtld-servers.net负责了此处解析
51cto.com.        172800    IN    NS    ns1.dnsv2.com.
51cto.com.        172800    IN    NS    ns2.dnsv2.com.
;; Received 249 bytes from 192.54.112.30#53(192.54.112.30) in 272 ms
##解析  ns1.dnsv2.com负责了最终A记录解析
www.51cto.com.        600    IN    CNAME    web.dns.51cto.com.
web.dns.51cto.com.    600    IN    CNAME    gf.dns.51cto.com.
gf.dns.51cto.com.    600    IN    A    218.11.0.91
51cto.com.        86400    IN    NS    ns2.dnsv2.com.
51cto.com.        86400    IN    NS    ns1.dnsv2.com.
;; Received 162 bytes from 115.236.151.178#53(115.236.151.178) in 139 ms

附:

    常用的HTTP请求方法

HTTP方法 作用描述
GET 客户端请求指定资源信息,服务器返回指定资源
HEAD 只请求响应保温中的HTTP首部
POST 将客户端的数据提交到服务器,例如注册表单
PUT 用从客户端向服务器传送的数据取代指定的文档内容
DELETE 请求服务器删除Request-URI所标识的资源
MOVE 请求服务器将指定的页面移至另一个网络地址

不同范围的状态码及其对应的应用

状态码范围 作用描述
100-199 用于指定客户端响应相应的某些动作
200-299 用于表示请求成功
300-399 用于已经移动的文件,并且常被包含在定位头信息中指定新的地址信息
400-499 用于指出客户端的错误
500-599 用于指出服务器的错误
工作环境中常见的状态码及对应的作用
状态代码 详细描述说明
200-OK 服务器成功返回网页,这是成功的HTTP请求返回标准状态码
301-Moved Permanently 永久跳转,所请求的网页将永久跳转到被设定的新位置,例如:从www.baidu.com跳转到www.qq.com
403-Forbidden 禁止访问,虽然这个请求是合法的,但是服务器端因为匹配了预先设置的规则而拒绝响应客户端的请求,此类问题一般为服务器或服务器权限配置不当所致
404-Not Found 服务器找不到客户端请求的指定页面,可能是客户端请求了服务器上不存在的资源所致
500-Internal Server Error 内部服务错误,服务器遇到了意料不到的情况,不能完成客户的请求。这是一个笼统的报错,一般为服务器的设置或内部程序问题导致。例如:SELinux开启,而有没有为HTTP设置规则许可,客户端访问就是500
502-Bad Gateway 坏的网关,一般是代理服务器请求后端服务时,后端服务不可用或没有完成响应网关服务器。这通常为反向代理服务器下面的节点出问题所致
503-Service Unavailable 服务当前不可用,可能是服务器超载或停机维护导致,或者是反向代理服务器后面没有可以提供服务的节点
504-Gateway Timeout 网关超时,一般是网关代理服务器请求后端服务时,后端服务没有在特定的时间内完成处理请求。多数是服务器过载导致没有在指定时间内返回数据给前端代理服务器

可以通过curl 命令在Linux命令行查看HTTP响应的数字状态码:

[[email protected] ~]# curl -I wwww.baidu.com
HTTP/1.1 302 Found   ##302 即为状态码 
Date: Sat, 01 Oct 2016 14:56:01 GMT
Server: Apache
Location: http://www.baidu.com/
Cache-Control: max-age=86400
Expires: Sun, 02 Oct 2016 14:56:01 GMT
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
[[email protected] ~]# curl -I -s -w %{http_code} -o /dev/null www.baidu.com
200   ##200即是状态码
时间: 2024-10-11 07:01:34

HTTP访问服务的相关解释的相关文章

通过jQuery或ScriptManager以Ajax方式访问服务

1.客户端和服务端 服务端对外提供服务时,可以通过handler或者webservice.handler比较轻便,但是难以对外公开,只有程序员自己知道它到底做了些什么工作.webservice可以将服务对外公开,调用也方便,更加专业些.如果不是要公开的接口,handler完全可以胜任了.下面是将webservice发布的效果. 客户端在调用服务端的服务时,最简单的莫过于使用jQuery了.当然微软也提供了ScriptMananger来访问WebService.他们之间的关系可以用下图说明. 2.

K8S中如何跨namespace 访问服务?为什么ping不通ClusterIP?

1.K8S中如何跨namespace 访问服务? 2.在Pod中为什么ping不通ClusterIP? 简述: ??????? Rancher2.0中的一个用户,在K8S环境中,创建两个namespace,对应用进行分割管理,在一个namespace的pod中,如何访问另一个namespace中的服务?--K8S使用kube-DNS实现服务发现功能的,可以通过DNS名称访问服务名. ??????? 在K8S中,部署一个带ClusterIP的服务,供集群内部网络访问.为什么这个ClusterIP无

实现硬件访问服务的JNI方法

1.实现硬件访问服务的JNI方法 ~/android-2.3_r1/frameworks/base/services/jni ----com_android_server_FregService.cpp ----onload.cpp ----Android.mk com_android_server_FregService.cpp #define LOG_TAG "FregServiceJNI" #include "jni.h" #include "JNI

实现硬件访问服务

一. 1.定义硬件访问服务接口(为了进程间通信) ~/android-2.3_r1/frameworks/base ----Android.mk ----/core/java/android/os/IFregService.aidl Android系统提供了一种描述语言来定义具有跨进程访问能力的服务接口,这种描述语言称为Android接口描述语言(AIDL). IFregService.aidl package android.os; interface IFregService { void

开发Android应用程序来使用硬件访问服务

1.开发Android应用程序来使用硬件访问服务 ~/android-2.3_r1/packages/experimental/Freg ----AndroidManifest.java ----Android.mk ----src ----shy/luo/freg ----Freg.java ----res ----layout ----main.xml ----values ----string.xml ----drawable ----icon.png Freg.java package

摩托罗拉SE955 One Discrete Length,Two Discrete Lengths,Length Within Range 相关解释

motorola scanner datasheet相关解释(以下通过Simple Serial Interface(SSI)进行设置,非扫描官方datasheet的设置条码): One Discrete Length:一个单独的条码长度,就是扫描头设置以后,只支持指定的一个长度的条码,发送格式:指定的条码长度作为长度参数1的值,长度参数2的值设置为0x00即可(比如设置interleaved 2 of 5 类型的只支持14位的条码,发送的参数为:0x16 14 0x17 00  注:0x16为

KB: Operations Manager为什么刚装好就显示数据访问服务SPN未注册

对于我这种强迫症患者,服务账号能用域账号就不用本地的.微软最佳实践也是这么建议的,于是我在安装SCOM的时候就是按照下面这样来规划账户的. 用户名 用途 权限级别 类型 隶属于 acertwp\svcomda OM数据访问服务和配置服务帐户 低权域用户 用户 SQL本地管理员SCOM本地管理员 acertwp\svcomw OM数据仓库写入账户 低权域用户 用户 SQL本地管理员SCOM本地管理员 acertwp\svcomr OM报表查询账户 低权域用户 用户 SQL本地管理员SCOM本地管理

Centos7.X自带的防火墙和服务的相关的配置

centos7.0版本之后相对于以前的版本更改行还是很大的,原先在6.5版本之前命令和配置文件大致都差不多,自7.0版本之后一些功能都有较大的改变,接下来会从防火墙和服务的相关配置来进行剖析. (一)防火墙firewall的相关介绍及配置 CentOS 7中防火墙是一个非常的强大的功能,在CentOS 6.5中在iptables防火墙中进行了升级了.(he dynamic firewall daemon firewalld provides a dynamically managed firew

OpenSSH服务及其相关_学习笔记

OpenSSH服务及其相关: Telnet    Tcp/23 缺点: 1.认证是明文 2.数据传输明文 ssh:Secure Shell  Tcp/22 Openssh(开源) 协议:sshv1(缺陷,废弃).sshv2 客户端: linux:ssh windows:putty.SecureCRT.SSHSecureShellClient.Xmanager ssh_config        配置文件 服务端: sshd openssh(ssh,sshd) sshd_config