HTTPS 是如何运作的?它解决了什么问题?
首先,HTTPS 并不是一个新的协议,而是 HTTP + SSL/TLS,即 SSL(Security Socket Layer)和 TLS(Transport Layer Security) 的缩写。但其实作为 SSL 的继任者,TLS 已经完全替代了 SSL,只是大概还是习惯使用 SSL 这个名词,为了严谨,后续都会继续使用 TLS。
首先,HTTPS 并不是一个新的协议,而是 HTTP + SSL/TLS,即 SSL(Security Socket Layer)和 TLS(Transport Layer Security) 的缩写。但其实作为 SSL 的继任者,TLS 已经完全替代了 SSL,只是大概还是习惯使用 SSL 这个名词,为了严谨,后续都会继续使用 TLS。
互联网是什么相信不用在这里赘述,大家平时“网上冲浪”都离不开它。本篇文章中我们就来翻译翻译,什么 XX 的叫 XX 的网络。
对于网络,我们可能听过非常多的名词,比如因特网、万维网、互联网。三者的关系其实为:
互联网 > 因特网 > 万维网
那么一个简单的网络看起来会是这样:
之前讲了「从输入 URL 再到浏览器成功看到界面」中的域名是如何变成 IP 地址的,了解了 DNS 相关的东西。这篇文章就聊聊发生在 DNS 解析之后的操作——建立连接。也就是我们常说的三次握手。
看到三次握手你可能会说,这不是面试都被问烂了的题吗?
三次握手不就是:
CLOSE
状态,然后监听某个端口,此时服务器会进入 LISTEN
状态CLOSE
状态,客户端会向服务器发送一个带 SYN
标志位的数据包,主动发起连接。此时客户端会变成 SYN-SENT
状态SYN
和 ACK
,此时服务器的状态变为了 SYN-RCVD
ESTABLISH
ESTABLISH
可能大家都知道或者被问过一个问题,那就是很经典的「从浏览器输入 URL 再到页面展示,都发生了什么」。这个问题虽然简单,但是真的能够从回答的各种细节上看出不同人之间的水平差距。
这篇文章主要是聊一聊输入 URL 之后的第一步——域名解析
域名就类似于 www.google.com,而通过 ping
命令,就可以查询到对应域名的 IP 地址了。
PS:通俗一点的解释都会在引用块中
Nothing is true, Everything is permitted.
TCP,全称Transmission Control Protocol,是一种面向连接、可靠的、基于字节流的单播协议。与我们常说的TCP/IP协议不同,TCP/IP是一个协议族,涉及到OSI模型中的网络层、应用层和应用层。而我们要聊的TCP就是在传输层的协议,现在应用的特别广泛的HTTP请求,就是基于TCP的。