WEB请求过程,HTTP、TCP/IP协议
首先几个概念:
URL:统一资源定位符。URL是用来标识一个特定的Web资源。就拿https://github.com:80/caishengkai?a=1这个简单的例子来说,这个URL规定了使用的协议(“https”),主机名(github.com),端口号(80),路径(caishengkai)和查询字符串(a=1)。
ISP:网络服务提供商。ISP是一个在客户端和服务器之间的中间商。对于典型的家庭,ISP通常是“电缆公司”。当你的浏览器接受去www.github.com的请求时,它是不知道去哪里查找www.github.com的,所以这是ISP的工作,ISP通过DNS查找你试图访问的站点所对应的IP地址。
TCP/IP:互联网协议(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为TCP/IP协议族(英语:TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP
HTTP:超文本传输协议。该协议是浏览器和Web服务器在互联网间通信用的。
WEB请求过程:
1.在浏览器输入URL www.github.com
2.浏览器解析URL,
3.浏览器与ISP通信,通过DNS查找到域名对应的IP,发给浏览器
4.浏览器将拿这个IP地址和URL中的端口号(HTTP协议默认端口号是80,HTTPS默认端口号是443),打开一个TCP套接字连接。这时,浏览器和服务器就建立了连接。
5.浏览器发送一个HTTP请求至Web服务器,去获取www.github.com的主页
6.Web服务器接收请求,并查找HTML页面。如果该页面存在,该Web服务器准备响应并把它发回给你的浏览器。如果服务器找不到你请求的页面,它将发送一个404错误消息,404表示“页面未找到”
7.浏览器接收到的HTML页面从头到尾扫描一遍,并去寻找其它相关的资源,如图片、CSS文件、JavaScript脚本文件等等,通过相同方式获取到资源
8.一旦浏览器加载完HTML涉及到的所有资源,页面最终会加载在浏览器窗体里,并关闭与服务器的连接。
TCP/IP协议与Http协议的区别
TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP 文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”