前言
今天在学习网络协议里的一个很重要的协议HTTP协议,也就是超文本传输协议,查资料的时候看到HTTPS协议放在一起讲,于是写博客记录二者的相同点和不同点。下面是我对两种协议的理解与认识。
一、HTTP
1.HTTP是什么
HTTP(HyperText Transfer Protocol:超文本传输协议) 是一种用于分布式、协作式和超媒体信息系统的应用层协议。其实我也说不清分布式协作式到底是个什么……反正记住功能,就是去发布和接收 HTML 的方法,该协议用于在 Web 浏览器和网站服务器之间传递信息。
HTTP 默认工作在 TCP 协议 80 端口。
http:// 打头的网站都是标准 HTTP 服务。
HTTP 协议以明文方式发送内容,明文的意思就是没有任何的数据加密,所以就不是很安全,这种情况下截取传输报文就直接知道了其中的信息了,所以敏感信息不适合HTTP协议去传输。
HTTP工作在 TCP/IP协议体系中的TCP协议上。
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。
还有就是格式,分为请求协议和响应协议。还有就是格式,客户端发送给服务器的格式叫“请求协议(request)”;服务器发送给客户端的格式叫“响应协议(response)”。
2.HTTP请求响应的过程:
输入网址之后发生了什么?
首先,浏览器查找域名对应IP,我们假设访问的 URL 地址为 http://www.someSchool.edu/someDepartment/home.index
,当我们输入网址并点击回车时,浏览器内部会进行如下操作:
DNS服务器会首先进行域名的映射,找到访问www.someSchool.edu所在的地址,找的过程如下
浏览器缓存——浏览器会记录DNS一段时间(2-30分钟不等,视浏览器而定)
系统缓存——浏览器里没找到DNS缓存,此事浏览器做一个系统调用(window下是gethostbyname)。如发现匹配则采用。(与此对应有host恶意劫持更改攻击)
路由器缓存——路由器也会有DNS缓存(缓存你上过的网站,所以有时路由器需要进行DNS刷新)
ISP DNS缓存——接下来是在ISP(互联网服务提