用户在浏览器中输入一个url发生的奥秘
在HTTP 客户端向服务器发送报文之前,需要用网际协议(Internet Protocol,IP)地址和端口号在客户端和服务器之间建立一条TCP/IP 连接。
http://207.200.83.29:80/index.html
http://www.netscape.com:80/index.html
http://www.netscape.com/index.html
- 第一个URL 使用了机器的IP 地址,207.200.83.29 以及端口号80。
- 第二个URL 没有使用数字形式的IP 地址,它使用的是文本形式的域名,或者称为主机名(www.netscape.com)。主机名就是IP 地址比较人性化的别称。通过一种称为域名服务(Domain Name Service,DNS)的机制方便地将主机名转换为IP地址,这样所有问题就都解决了。
- 最后一个URL 没有端口号。HTTP 的URL 中没有端口号时,可以假设默认端口号是80。
- 有了IP 地址和端口号,客户端就可以很方便地通过TCP/IP 进行通信了。
基本的浏览器连接处理,如下图所示:

通讯步骤如下:
- 浏览器从URL中解析出服务器的主机名;
- 浏览器把服务器主机名转换为服务器的IP地址;
- 浏览器从URL中解析出与服务器端通讯的端口号(如果存在);
- 浏览器建立一条与web服务器的TCP连接;
- 浏览器向服务器发送一条HTTP请求报文;
- 服务器接收并返回一条HTTP响应报文给浏览器;
- 关闭连接,浏览器展示服务器返回的结果页面。
用户在浏览器中输入一个url发生的奥秘的更多相关文章
- 网易笔试题:浏览器中输入一个url后回车到返回页面信息的过程
You enter a URL into the browser输入一个url地址 The browser looks up the IP address for the domain name浏览器 ...
- 在浏览器中输入一个URL后都发生了什么
这道题目没有所谓的完全的正确答案,这个题目可以让你在任意的一个点深入下去, 只要你对这个点是熟悉的.以下是一个大概流程: 浏览器向DNS服务器查找输入URL对应的IP地址. DNS服务器返回网站的IP ...
- 解释一下,在你往浏览器中输入一个URL后都发生了什么,要尽可能详细
这道题目没有所谓的完全的正确答案,这个题目可以让你在任意的一个点深入下去, 只要你对这个点是熟悉的.以下是一个大概流程: 浏览器向DNS服务器查找输入URL对应的IP地址. DNS服务器返回网站的IP ...
- 当在浏览器中输入一个url后回车,后台发生了什么?比如输入url后,你看到了百度的首页,那么这一切是如何发生的呢?
简单来书有以下步骤: 查找域名对应的IP地址.这一步会依次查找浏览器缓存,系统缓存,路由器缓存,ISPDNS缓存,13台根域名服务器. 向IP对应的服务器发送请求. 服务器响应请求,发回网页内容. 浏 ...
- 经典面试题:在浏览器地址栏输入一个 URL 后回车,背后发生了什么
尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 CS-Wiki(Gitee 官 ...
- 当你在浏览器地址栏输入一个URL后回车,将会发生的事情?
原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ 作为一个软件开发者,你一定会对网络应用如何工作有 ...
- 【转】当你在浏览器地址栏输入一个URL后回车,将会发生的事情?
http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ http://www.cnblogs.com/panx ...
- 浏览器地址栏输入一个URL后回车,将会发生的事情
浏览器向DNS服务器查找输入URL对应的IP地址. DNS服务器返回网站的IP地址. 浏览器根据IP地址与目标web服务器在80端口上建立TCP连接 浏览器获取请求页面的html代码. 浏览器在显示窗 ...
- 在浏览器地址栏输入一个URL后回车,将会发生的事情?
https://yq.aliyun.com/articles/20667
随机推荐
- ajax常见的面试题
1. 什么是ajax? AJAX = Asynchronous (异步) JavaScript and XML,是一种用于创建快速动态网页的技术. 2. ajax接受到的数据类型是什么? 2.1 st ...
- Http_4个新的http状态码:428、429、431、511
1.428 Precondition Required (要求先决条件) 先决条件是客户端发送 HTTP 请求时,必须要满足的一些预设条件.一个好的例子就是 If-None-Match 头,经常用在 ...
- RabbitMQ 官方demo1
public class RabbitMqSend { public static void Test() { var factory = new ConnectionFactory() { Host ...
- 在vue中使用sass的配置的方法
1.安装sass的依赖包 npm install --save-dev sass-loader //sass-loader依赖于node-sass npm install --save-dev nod ...
- 动态规划-LIS
https://vjudge.net/contest/297216?tdsourcetag=s_pctim_aiomsg#problem/E #include<bits/stdc++.h> ...
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.e3mall.search.mapper.ItemMapper.getItemList
java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Invalid bound statement (not ...
- js中的单例模式
1.场景:当我们需要多人合作完成一个项目,但是有一些操作是同样的操作时(例如:点击按钮显示加载的遮罩层:例如:提交表单时的验证都是一样的),这个时候我们就需要单例模式: 2.什么是单例模式:是一种常见 ...
- [Swift]LeetCode104. 二叉树的最大深度 | Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...
- [Swift]LeetCode1022. 从根到叶的二进制数之和 | Sum of Root To Leaf Binary Numbers
Given a binary tree, each node has value 0 or 1. Each root-to-leaf path represents a binary number ...
- SSM框架报HTTP Status 500 - Request processing failed; nested exception is java.lang.NullPointerException错
如下图 一番排查之后发现原来是server层写漏注释了 粗心大意,一天内出现两次写漏注释,SSM框架有意思.