我是猿人,一个热爱技术、热爱编程的IT猿。技术是开源的,知识是共享的!
写作是对自己学习的总结和记录,如果您对 Java、分布式、微服务、中间件、Spring Boot、Spring Cloud等技术感兴趣,可以关注我的动态,我们一起学习,一起成长!
用知识改变命运,让家人过上更好的生活,互联网人一家亲!
---公众号「猿码天地」
Java知识学堂:https://gitee.com/zhangbw666/it-knowledge
你多学一样本事,就少说一句求人的话,现在的努力,是为了以后的不求别人,实力是最强的底气。记住,活着不是靠泪水博得同情,而是靠汗水赢得掌声。——《写给程序员朋友》
1. 写在前面
对于互联网我们都不陌生,它完完全全改变了我们的生活,生活在这样的时代还是很幸福的。我们平时查百度、逛淘宝、京东、用腾讯、爱奇艺看视频等,我们在浏览器输入一个域名,就可以进入到我们想要的系统或页面,这其中发生了什么?是怎样的流程,我想大多数人是不太清楚的,猿人就来给大家聊聊。
总体来说分为以下几个过程:
-
DNS 解析:将域名解析成 IP 地址
-
TCP 连接:TCP 三次握手
-
发送 HTTP 请求
-
服务器处理请求并返回 HTTP 报文
-
浏览器解析渲染页面
-
断开连接:TCP 四次挥手
2. URL是什么?
URL是英语Uniform Resource Locator的缩写,中文名叫:统一资源定位符(或称统一资源定位器/定位地址、URL地址),有时也被俗称为网页地址(网址)。
URL就如同在网络上的门牌,是因特网上标准的资源的地址(Address)。它最初是由蒂姆·伯纳斯-李发明用来作为万维网的地址。现在它已经被万维网联盟编制为因特网标准。
标准的格式如下:
scheme://host.domain:port/path/filename

各部分解释如下:
-
scheme - 定义因特网服务的类型。常见的协议有 http、https、ftp、file,其中最常见的类型是 http,而 https 则是进行加密的网络传输。
-
host - 定义域主机(http 的默认主机是 www)
-
domain - 定义因特网域名,比如 http://w3school.com.cn
-
port - 定义主机上的端口号(http 的默认端口号是 80)
-
path - 定义服务器上的路径(如果省略,则文档必须位于网站的根目录中)
-
filename - 定义文档/资源的名称
<