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的十一种状态转移总结

  • 相关阅读:
    permission 文档 翻译 运行时权限
    TabLayout ViewPager Fragment 简介 案例 MD
    Log 日志工具类 保存到文件 MD
    OkHttp 官方wiki 翻译 MD
    Okhttp 简介 示例 MD
    OkHttp 官方Wiki之【使用案例】
    DialogPlus
    倒计时 总结 Timer Handler CountDownTimer RxJava MD
    RecyclerView 判断滑到底部 顶部 预加载 更多 分页 MD
    CSS3的媒体查询(Media Queries)与移动设备显示尺寸大全
  • 原文地址:https://www.cnblogs.com/charon2/p/10326272.html
Copyright © 2011-2022 走看看