美文网首页
(转) 09http基础

(转) 09http基础

作者: 小镇青年Jack | 来源:发表于2019-08-01 20:07 被阅读0次

    第一章 用户访问流程

    image

    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解析界面

    image

    DNS系统树状结构图

    image

    DNS解析流程图

    image

    使用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七层模型

    image

    TCP/IP五层模型

    image

    TCP/IP每层包含的协议

    image

    TCP报文格式

    image

    TCP/IP三次握手

    image

    TCP/IP四次挥手

    image

    第四章 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请求方法

    image

    第六章 HTTP响应状态码

    响应状态码分类

    image

    常见响应状态码解释

    image

    使用curl查看状态码

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

    第七章 HTTP请求报文

    image

    请求行

    image

    请求头

    image

    空行

    请求主体

    第八章 HTTP响应报文

    image

    起始行

    响应报文的起始行也叫状态行,用来说明服务器相应客户端请求的状态,一般为协议及版本号,数字状态码,状态情况,例如: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 --> 服务端
    
    

    小礼物走一走,来简书关注我

    作者:张亚_7868
    链接:https://www.jianshu.com/p/269abbd6fb30
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    相关文章

      网友评论

          本文标题:(转) 09http基础

          本文链接:https://www.haomeiwen.com/subject/wlthdctx.html