首页 > 教育学习 > 为什么 > 浏览器敲网址按回车之后的各种技术细节都有什么?

浏览器敲网址按回车之后的各种技术细节都有什么?
2012-01-19 20:11:01   来源:   点击:

    浏览器敲网址按回车之后的各种技术细节都有什么?希望能尽可能详细深入的描述。我抛砖引玉一下,浏览器接收字符串,判断是哪种协议,调用操作系统API,操作系统找DNS服务器解析IP(可能有缓存),向指定IP发送请求,数据经过七层网络协议各种路由到达对方服务器(有可能传输失败),对方服务器给出响应,再传回来,浏览器收到数据(如HTML)后解释为用户友好的各种界面。

    4 个答案

    • 答案 1:

      Quote:There’s no right, or even complete, answer for this question. This question allows you to go into arbitrary amounts of detail depending on what you’re comfortable with. Here’s a start though:1. Browser contacts the DNS server to find the IP address of URL.2. DNS returns back the IP address of the site.3. Browser opens TCP connection to the web server at port 80.4. Browser fetches the html code of the page requested.5. Browser renders the HTML in the display window.6. Browser terminates the connection when window is closed.One of the most interesting steps is Step 1 and 2 - “Domain Name Resolution.” The web addresses we type are nothing but an alias to an IP address in human readable form. Mapping of domain names and their associated Internet Protocol (IP) addresses is managed by the Domain Name System (DNS), which is a distributed but hierarchical entity.Each domain name server is divided into zones. A single server may only be responsible for knowing the host names and IP addresses for a small subset of a zone, but DNS servers can work together to map all domain names to their IP addresses. That means if one domain name server is unable to find the IP addresses of a requested domain then it requests the information from other domain name servers.
    • 答案 2:

      判断协议直接取文本判断,然后调用API(不一定是系统API,还有可能是webkit之类)『操作系统找DNS服务器解析IP(可能有缓存),向指定IP发送请求,数据经过七层网络协议各种路由到达对方服务器』这部分应该是内核的功能,通过内核返回数据判断传输状况,解析数据包,排版,显示我也不是做这个的,这就是个大概,可能会有错误的地方。
    • 答案 3:

      楼上说的应该是大部分网络应用都会有的步骤,比如ftp,邮件之类的作为浏览器,主要的就是对html的渲染(浏览器内核)和javascript虚拟机吧
    • 答案 4:

      首先你要明白你输入的是什么:一般网址形式是aa://bb:cc/ aa代表使用网络协议,最常见的就是http和https以及ftp等,bb代表的是域名,cc代表的是端口号。由于你考虑的是浏览器,我就对http来做个简单的说明,如果是https等,就要复杂点。1 按下回车后,你的浏览器首先会去本地hosts查找对应域名的IP地址,如果没有找到,那么将会连接到DNS服务器,获取该域名对应的IP地址。2 浏览器获得IP地址之后,将会向指定IP,指定端口号(端口号缺省为80)的服务器建立TCP连接,不是UDP。3 连接建立之后,服务器将会返回相关页面的HTML文档,浏览器收到html文档之后,对html进行分析,由于http协议是不连续的,因此对html中的什么图片连接,CSS连接等又要向服务器进行再次请求。所以我们用什么开发人员工具观察网络的时候,经常看到一次流浪过程中可能要请求几十个文件。4 对html进行渲染,执行javascript。5 连接不会关闭的,而是keep-alive,除非你自己指定关闭。这只是一个大概过程,浏览器把底层通讯等复杂操作封装了。

相关热词搜索:

上一篇:知乎相比Quora,创新点在哪里?
下一篇:哪里能找到详细的iPad绘画教程?想达到一定高度是否需要相当的绘画基础呢?