09http基础

第一章 用户访问流程

01.访问网站流程:

00. 客户端  浏览器输入网址信息点击回车(www.oldboyedu.com)
01. 客户端  完成域名的解析过程(DNS) 
02. 客户端  直接访问相应网站服务器  建立TCP三次握手过程
03. 客户端  访问网站服务器         发送HTTP请求报文  多次
04. 服务端  响应客户端请求         回复HTTP响应报文  多次
05. 客户端  浏览器看到网站页面
06. 客户端  结束访问网站过程       完成TCP四次挥手过程

02.关键名词:

1.域名
2.DNS域名解析
3.TCP三次握手
4.TCP四次挥手
5.HTTP请求报文
6.HTTP响应报文

第二章 DNS域名解析

DNS介绍

DNS,全称Domain Name System/Serve
它在一个网站运行中起到了至关重要的作用
它的主要作用是负责把网站域名解析为对应的IP地址
例如:把www.etiantian.org解析为对应的IP地址记录如1.1.1.1,这个从域名到IP的解析过程称为A记录,即Address Record
DNS常用记录类型主要有

@记录
A记录
CNAME记录

阿里云的DNS解析界面


DNS系统树状结构图

DNS解析流程图

image.png

使用dig命令追踪DNS解析过程

安装dig命令

yum install bind-utils -y

使用dig命令追踪

[root@m01 ~]# dig +trace www.oldboyedu.com        

; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.1 <<>> +trace www.oldboyedu.com
;; global options: +cmd
.                       5       IN      NS      d.root-servers.net.
.                       5       IN      NS      j.root-servers.net.
.                       5       IN      NS      b.root-servers.net.
.                       5       IN      NS      l.root-servers.net.
.                       5       IN      NS      f.root-servers.net.
.                       5       IN      NS      m.root-servers.net.
.                       5       IN      NS      i.root-servers.net.
.                       5       IN      NS      e.root-servers.net.
.                       5       IN      NS      a.root-servers.net.
.                       5       IN      NS      g.root-servers.net.
.                       5       IN      NS      c.root-servers.net.
.                       5       IN      NS      h.root-servers.net.
.                       5       IN      NS      k.root-servers.net.
;; Received 492 bytes from 10.0.1.2#53(10.0.1.2) in 52 ms

com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      i.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      e.gtld-servers.net.
com.                    172800  IN      NS      j.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    172800  IN      NS      g.gtld-servers.net.
com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      k.gtld-servers.net.
com.                    172800  IN      NS      d.gtld-servers.net.
com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    86400   IN      DS      30909 8 2 
..............................
oldboyedu.com.          172800  IN      NS      dns9.hichina.com.
oldboyedu.com.          172800  IN      NS      dns10.hichina.com.
..............................
www.oldboyedu.com.      600     IN      A       39.97.3.87
;; Received 62 bytes from 106.11.141.126#53(dns10.hichina.com) in 4 ms

DNS解析流程

第一步:客户端用户在浏览器里输入www.baidu.com网址后回车,系统首先会查找系统本地的DNS缓存及host文件信息,确定是否存在www.baidu.com域名对应的IP解析记录,如果有就直接获取到IP地址,然后去访问这个IP地址对应的www.baidu.com域名的服务器.一般第一次请求时,DNS缓存是没有解析记录的,而hosts多为内部临时测试使用.
第二步:如果客户端本地DNS缓存及本地hosts文件没有www.baidu.com域名对应的解析记录,那么,系统会把浏览器的解析请求发送给在客户端本地设置的DNS服务器地址解析,通常称次DNS为LDNS即local DNS,如果LDNS服务器的本地缓存存有对应的解析记录就会直接返回给IP地址给客户端:如果没有,则LDNS会负责继续请求其他的DNS服务器.
第三步:LDNS从DNS系统的(".")根开始请求对www.baidu.com域名的解析,根DNS服务器在全球一共有13台,根服务器下面是没有www.baidu.com域名解析记录的,但是根下面有www.baidu.com对应的顶级域名.com的解析记录,因此,根会把.com对应的DNS服务器地址返回给LDNS.
第四步:LDNS获取到.com对应的DNS服务器地址后,就会去.com服务器请求www.baidu.com域名的解析,.而com服务器下面也没有www.baidu.com域名对应的解析记录,但是有baidu.com域名的解析记录,因此.com服务器会把baidu.com对应的DNS服务器地址返回给DNS.
第五步:同理,LDNS获取到baidu.com对应的DNS服务器地址后,就会去baidu.com服务器请求对www.baidu.com域名的解析,baidu.com域名对应的DNS服务器是该域名的授权DNS服务器,这个DNS服务器正是企业购买域名时用于管理解析的服务器,这个服务器会有www.baidu.com对应的解析记录,如果此时没有,就表示企业还没有对这个域名做解析,即网站服务器还没有架设好.
第六步:baidu.com域名DNS服务器会把www.baidu.com对应的IP解析记录发给LDNS.
第七步:LDNS把来自授权DNS服务器的与www.baidu.com对应的IP解析记录发给客户端浏览器,并且LDNS会在本地把域名和IP对应解析记录缓存起来,以便下一次更快的返回相同解析请求的记录.至此,整个DNS的解析流程就完成了.

第三章 TCP/IP协议

OSI七层模型

TCP/IP五层模型

TCP/IP每层包含的协议

TCP报文格式

image.png

TCP/IP三次握手

TCP/IP四次挥手

第四章 HTTP协议介绍

URL

全称为Uniform Resource Location,中文翻译为统一资源定位符

URI

全称为Uniform Resource Identifier,中文翻译为统一资源标识符

URL和URI关系

docs.ansible.com   / ansible/latest/user_guide/playbooks_reuse_roles.html
URL                  URI 

静态资源

特点说明:
1) 网页内容是固定不变的,因此,容易被搜索引擎收录(容易被用户找到)(优点)。
2) 因为网页没有数据库的支持,所以在网站制作和维护方面的工作量较大,当网站信息量很大时,
完全依靠静态网页比较困难(缺点)。
3) 网页的交互性较差,在程序的功能实现方面有较大的限制(缺点)。
4) 当客户端向服务器请求数据时,服务器会直接从磁盘文件系统上返回数据(不做任何解析)。

动态资源

要什么信息,需要进行查询数据库进行解析后发送给客户端
查看班级人员信息表

班级   人名   年龄   学历
sz-01  张三   18     高中   ---> 数据库中 oldboy=123  <--- post 
sz-01  李四   20     大专   

班级   人员   年龄   学历
代码信息直接调用数据库的内容
1) 采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、
   投票、用户管理、订单处理、发博文等。
2) 动态资源页面会出现 "?" "&", 不便于被搜索引擎收录
3) 接收到用户请求,需要让动态服务和数据库服务进行处理

伪静态资源(动态页面)

1. 可以便于搜索引擎进行收录
2. 有数据库服务支持,实现网页交互功能

第五章 HTTP请求方法

第六章 HTTP响应状态码

响应状态码分类

常见响应状态码解释


使用curl查看状态码

curl -I -s -w "%{http_code}\n" -o /dev/null  www.baidu.com

第七章 HTTP请求报文

请求行

请求头

空行

请求主体

第八章 HTTP响应报文

起始行

响应报文的起始行也叫状态行,用来说明服务器相应客户端请求的状态,一般为协议及版本号,数字状态码,状态情况,例如:HTTP/1.1 200 OK

响应头部

和请求报文类似,起始行的后面一般有若干个头部字段,每隔头部字段都包含一个名字和一个值,两者之间用冒号分隔.头部结尾也是以空行结束.常见的头部信息有

空行

响应主体

响应报文主体装载了要返回给客户端的数据,这些数据可以是文本,也可以使二进制的图片视频,下面是响应报文主体的html格式文本

第十章 用户访问网站流程总结

1.用户输入域名->浏览器跳转->浏览器缓存->Hosts 文件->DNS 解析( 递归查询 | 迭代查询 )
客户端向服务端发起查询->递归查询
服务端向服务端发起查询->迭代查询
2.由浏览器向服务端发起 TCP 连接(三次握手)
客户端 -->请求包连接-syn=1 seq=x 服务端
服务端 -->向应客户端 syn=1 ack=x+1 seq=y 客户端
客户端 -->建立连接 ack=y+1 seq=x+1 服务端
3.客户端发起 http 请求:
1.请求的方法是什么: Get 获取
2.请求的 Host 主机是: www.oldboyedu.com
3.请求的资源是什么: /index.html
4.请求的端口是什么: 默认 http 是 80 https 443
5.请求携带的参数是: 属性(请求的类型、压缩、认证、浏览器信息、等等)
6.请求最后的空行
4.服务端响应的内容是
1.服务端响应使用的 WEB 服务软件
2.服务端响应请求文件的类型
3.服务端响应请求的文件是否进行压缩
4.服务端响应请求的主机是否进行长连接
5.客户端向服务端发起 TCP 断开(四次挥手)
客户端 --> 断开请求 fin=1 seq=x --> 服务端
服务端 --> 响应断开 fin=1 ack=x+1 seq=y --> 客户端
服务端 --> 断开连接 fin=1 ack=x+1 seq=z --> 客户端
客户端 --> 确认断开 fin=1 ack=z+1 seq=sj --> 服务端
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • 第一章 用户访问流程 01.访问网站流程: 02.关键名词: 第二章 DNS域名解析 DNS介绍 DNS,全称Do...
    小镇青年Jack阅读 90评论 0 0
  • 在浏览器输入想要访问的域名之后,浏览器会进行域名解析获得IP地址,在经过TCP的连接,实现数据的传输就会有两种报文...
    古巷挂青灯阅读 1,198评论 0 1
  • 非常好的文章,怕博主删除,再也找不到这么好的文章了,所以复制了一份,博主是2016年写,但是是到现在为止看到的,思...
    吭声_cfdc阅读 1,625评论 0 4
  • 为什么需要DNS解析域名为IP地址? 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算...
    後来的後来hugh阅读 837评论 1 1
  • 1、前言 在当下互联网时代,我们日常生活和工作基本都离开不域名和 DNS ,如通过一个网址打开一个网站进行购物、使...
    cinder_lv阅读 3,546评论 1 27