HTTP
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的 WWW(万维网) 文件都必须遵守这个标准。设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。
HTTP位于应用层。HTTP是基于TCP的。
一、引例
引:在浏览器中输入url地址(www.baidu.com),为什么会出现页面?
主要是有这么几个步骤:
- 1、首先浏览器会根据这个域名解析到对应的IP(这个过程是交由DNS来解析的)
- 先去浏览器缓存中检查有没有解析过这个域名对应的IP,如果有直接返回
- 如果没有,就去本地缓存中去寻找(对应的就是本地hosts文件,查看有没有对应的映射) ,如果有则使用这个域名对应的ip
- 如果没有则会请求本地DNS服务器去查询它的缓存记录,如果存在就返回(80%是都可以查到的)
- 如果本地DNS服务器没有的话,就去请求DNS根服务器进行查询,根DNS服务器里面没有域名与IP的对应关系,但是可以返回给本地DNS服务器一个域服务器的地址,告诉本地DNS服务器去这个域服务器上去寻找
- 本地DNS服务器继续向域服务器发出请求,域服务器会告诉本地DNS服务器,你的域名的解析服务器的地址。
- 然后本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,拿到这个IP,同时进行缓存以便下次查询使用
- 2、拿到IP以后就相当于找到服务器,先建立TCP连接(三次握手)
- 3、连接成功,浏览器想服务器发送HTTP请求
- 4、服务器处理接收的请求(包括参数、cookies等等),并返回HTTP报文(可以使HTML响应)
- 5、浏览器根据获得的响应渲染页面
- 6、断开连接
二、HTTP长连接,短连接
- 短连接
- 简单来讲就是客户端和服务器端每进行一次HTTP操作,就建立一次连接,当任务结束(数据传输完毕)就关闭连接
- 管理简单,对服务器压力小,但是频繁的请求会在TCP频繁建立连接、关闭连接上耗费大量的时间
- 长连接<