zoukankan      html  css  js  c++  java
  • DNS原理-HTTP原理-TCP原理

    第一章:企业DNS原理

    相信大家都知道windows和linux的hosts文件是:IP地址和域名的对应关系,我们一般访问网站的步骤:

    打开网页-----输入网址-------查看本地的DNS库是否存在该网站的域名与对应IP地址

    接下有两种情况:

    •本地存在该网站域名对应的IP(hosts文件),然后我们直接根据本地缓存的DNS进行解析,并访问该域名对应的IP地址,在进行TCP的三次握手,进行与网站的连接,当然我们访问网站完毕之后,又进行了四次挥手断开

    •本地hosts文件不存在该网站域名与IP的对应关系,那么本地的域名服务器将请求返回给DNS系统的根进行解析,并且针对DNS系统的各个阶层一级一级的进行查找,直到找到那个域名,反之没有该域名响应的解析授权的DNS服务器,也就是说明该网站没有搭建成功

    DNS服务器进行逐级查找结构图:

    以上两种方法均是让用户获取网站的域名相对于IP的地址

    接下来分为两种情况

    该域名的授权DNS服务器会把该域名对应的IP地址发送到请求方(客户端)的本地DNS服务器;

    如果用户本地的DNS服务器存在对应的IP地址,直接访问

    最后:

    客户端的浏览器获得了该域名对应的IP地址,该网站的服务器收到客户端的请求进行相应处理,将客户端请求的内容返回给客户端的浏览器,至此,用户访问网站的过程就完成了

    总结:

    进行本地DNS查找以及授权DNS服务器的查找,获取IP地址。并且加载到本地的DNS(hosts文件)缓存,进行建立TCP连接过程(三次握手),发送http报文以及请求报文的细节,web服务器的相应并且处理客户端的相应,关闭连接(四次挥手) 

    第二章:http协议通信原理

    1http状态码

    http状态码是用来表示web服务器响应http请求的数字代码,下面是几种常见的:

    200:成功
    301:永久重定向
    302:临时重定向
    403:禁止访问
    404:页面找不到
    500:服务器内部错误。比如nginx的url重写循环十次后,会停止重写并返回500状态码
    502:坏的网关
    504:网关超时
    

     第三章:tcp的三次握手和四次断开

     1、三次握手

     CLOSED关闭状态

    在连接超时或者连接关闭的时候进入此状态,但是这并不是一个真正的状态,
    而是这个状态图假想的起点和终点(便于我们理解和思考)
    

     LISTEN监听状态

    服务器server端等待连接的状态。服务器经过 socket,bind,listen 函数之后进入此状态,
    开始监听客户端发过来的连接请求。此称为应用程序被动打开(等待客户端的连接请求)
    

    SYN_SENT状态

    第一次握手状态
    客户端发起连接,客户端调用connect,发送SYN给服务器端,
    然后客户端进入SYN_SENT状态,等待服务端确认,
    如果服务器端不能连接,则客户端进入CLOSE状态
    

     SYN_RCVD状态

    第二次握手发生状态:
    这里是服务器端接收到了客户端的SYN请求,此时服务端有LISTEN进入SYN_RCVD状态,
    同时服务器端回应一个ACK,然后在发送一个SYN,即SYN_ACK给客户端。
    
    状态图中还描绘了这样一种情况,当客户端在发送 SYN 的同时也收到服务器端的 SYN请求,
    即两个同时发起连接请求,那么客户端就会从 SYN_SENT 转换到 SYN_REVD 状态。
    

     ESTABLISHED状态

    第三次握手发生阶段:
    客户端接收到服务器端的 ACK 包(ACK,SYN)之后,也会发送一个 ACK 确认包,
    客户端进入 ESTABLISHED 状态,表明客户端这边已经准备好,
    但TCP 需要两端都准备好才可以进行数据传输。
    服务器端收到客户端的 ACK 之后会从 SYN_RCVD 状态转移到 ESTABLISHED 状态,
    表明服务器端也准备好进行数据传输了。
    

     总结

    客户端和服务器端都变为 ESTABLISHED 状态,就可以进行数据的传输了;
    当然 ESTABLISHED 也可以说是一个数据传送状态。
    

     2、四次挥手

    描述:略

    3、TCP的十一种状态转移总结

  • 相关阅读:
    2015年中国500强企业
    汇编语言
    oracle数据库学习路线
    OI生涯回忆录
    NOIP 2020游记
    CF223B Two Strings 题解
    CSP-S 2020游记
    CSP/NOIP 注意事项(2020)
    Luogu P6583 回首过去 题解
    Luogu P2210 Haywire 题解
  • 原文地址:https://www.cnblogs.com/charon2/p/10326272.html
Copyright © 2011-2022 走看看