• 浏览器访问服务器的流程


    1、浏览器输上域名,例如www.baidu.com

    2、浏览器会先访问DNS服务器,把域名解析成ip地址,在返回给浏览器

    2)DNS的解析原理:

    原理步骤:

    1)系统首先会查找本地的DNS缓存和hosts文件信息,确认其中是否有与,域名www.baidu.com所对应的IP地址。如果有,就直接访问这个IP地址所对应的www.baidu.com域名服务器。

    2)如果没有找到,那么,系统将会把浏览器的解析请求发送给本地主机所指定的DNS服务器,称为LDNS。如果LDNS服务器中有域名www.baidu.com所对应的IP地址,则返回给客户端的浏览器,如果没有,则继续请求其他DNS服务器。

    3)LDNS服务器会从DNS系统的根(.)开始请求对域名www.baidu.com的解析。根DNS服务器全球只有13台,根域名服务器是没有域名www.baidu.com解析记录的。但是它会有域名www.baidu.com所对应的顶级域.com的解析记录,因此直接把顶级域.com所对应的DNS地址返回给LDNS服务器。

    4)LDNS服务器获取到顶级域.com对应的DNS服务器地址后,就会去.com服务器请求对www.baidu.com域名的解析。在顶级域名服务器也不会有www.baidu.com的解析记录的。但是它有www.baidu.com的父级域名的解析记录,即baidu.com。因此顶级域名.com服务器又会把baidu.com所对应的DNS服务器的IP地址返回给LDNS。

    5)LDNS服务器收到baidu.com所对应的IP地址后,就会去baidu.com域名服务器请求对www.baidu.com的域名解析。Baidu.com域名对应的DNS服务器是该域名的授权DNS服务器。这个DNS服务器就是企业购买域名时用于管理解析的服务器。

    6)baidu.com域名DNS服务器会吧www.baidu.com域名所对应的IP地址给解析出来,然后发给LDNS。

    7)LDNS把解析出来的结果,www.baudu.com所对应的IP地址发送给客户端的浏览器。并且LDNS也会将其域名和对应的地址缓存到cache中。

    8)客户端浏览器收到后,也会将其域名以及对应的IP地址缓存的到DNS缓存和hosts文件中。

    3、浏览器从ip中解析出端口号

    4、浏览器通过解析后得到的ip和端口号来与web服务器建立一条TCP通道连接(三次握手)

    2、TCP/IP协议的介绍和三次握手及四次挥手

    1)说说TCP/IP协议是什么

    Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

    5、建立TCP连接之后,浏览器向web服务器发送一条HTTP请求报文。

    1)请求行

    作用:用来说明客户端想要做什么。

    内容:包括方法字段GET和URL字段以及HTTP协议版本

    2)请求头

    作用:通过客户端把请求的相关信息发给服务器

    内容:包括媒体类型、语言类型、支持压缩、客户端类型、主机等信息。

    3)空行

    作用:告诉服务器空行以下内容不属于请求头部信息。

    4)请求报文主体

    作用:用来说明客户端具体想要做的事情。

    内容:查看信息、应用post方法。

    6、web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文。

    1)状态行

    作用:用来说明服务端响应客户端的状态。

    内容:包括洗衣及版本号、数字状态码、状态情况

    2)响应头

    作用:通过服务端把响应的相关信息给客户端

    内容:包括Location、server、connect、vary等

    3)空行

    作用:告诉客户端空行以下内容不属于响应头部信息。

    4)响应报文主体

    作用:用来装载着要返回给客户端的数据

    内容:包括文本、html、视频或者是图片。

    7、web服务器关闭HTTP连接,关闭TCP连接,web服务器显示访问的网站内容到屏幕上。

    转载: https://www.cnblogs.com/hualingyun/p/11018297.html

  • 相关阅读:
    SQL Server数据库查询区分大小写、全半角——排序规则的应用
    C#中查询字符串中是否包含指定字符/字符串,使用IndexOf还是Contains?
    【WM6.5】三星I8000按键码及窗体消息发送的方法备忘
    UoBlog 支持 MetaWeblog Api,可以使用 Windows Live Writer 离线发表日志
    C#中如何获取一个字符串的实际字符数
    使用HttpWebRequest发送HTTP请求,同时支持GET/POST方式提交。
    c#.NET中开发可用于Web网页的ActiveX控件
    CorePlex开发手记:一、Winform窗体皮肤及简单换肤机制
    .NET中简易实现线程安全
    在C#中截取指定长度的中文字符串(效率提高2500倍)
  • 原文地址:https://www.cnblogs.com/houss/p/13328916.html
Copyright © 2020-2023  润新知