一、HTTP的工作流程
1.工作流程:
a.构建URL。地址解析:协议类型+主机名(域名)+端口+请求的文件名(index.html)+请求参数(?name=a&age=b);
b.封装HTTP请求。URL+本机的信息封装成一个HTTP请求数据包;
c.封装TCP包,建立TCP连接(三次握手);
d.客户端发送HTTP请求到服务端 ;
e.服务端回复HTTP响应报文。相关响应信息放在响应头和响应体中;
f.关闭TCP连接。
2.HTTP协议依赖TCP/IP协议来传送数据。HTTP协议是一个无状态的协议,所以使用cookie和session维持状态。
cookie:server给client发一个cookie,保存在客户端上,访问server的时候带上自己的cookie。(通行证)
session:server将client信息保存在服务器上。(档案表)
3.http1.0 http1.1 http2.0 有哪些区别?
http1.0:主要缺点是每个HTTP连接只能发送一个请求(短连接),发送数据完毕,连接就关闭,不能复用连接。
http1.1:引入了持久连接(长连接),在响应完第一个请求之后,TCP连接默认不关闭,可以被多个请求复用; 引入了管道机制:一次可以发送多个请求,增加了put、delete等命令。
http2.0:二进制协议;允许服务器推送;头信息压缩机制;多路复用技术(通过一个tcp连接传输所有的请求数据);数据流。
4.http响应码: 1xx: 请求已收到正在处理; 2xx: 处理成功; 3xx: 重定向; 4xx: 客户端的错误; 5xx:服务端的错误
5.点击一个URL会发生的一系列事件:
1).浏览器向DNS请求,解析域名对应的IP地址;
2).根据IP地址,浏览器与服务器建立TCP连接;
3).浏览器向服务器发出请求,如GET index.htm;
4).服务器给出响应,把文件index.htm发给浏览器;
5).TCP关闭连接;
6).浏览器显示index.htm中的所有文本。
二、HTTPS协议
1.https具体如何实现的:和HTTP基本工作原理相同,添加了加密和认证机制(在HTTP下加入SSL层)。
SSL(Secure Sockets Layer安全套接字层):依靠证书,为浏览器和服务器之间的通信加密。
2.如何防止被抓包:SSL层,证书?
3.http和https的区别:
1).http明文传输数据,https通过SSL加密传输数据,更安全;
2).端口不同:http用80端口,https用443端口;
3).https需要证书,http不用;
4).建立连接阶段,https比http更耗时;