目录
1.什么是HTTP
2.你是怎么理解 HTTP 字面上的“超文本”和“传输协议”的?
3.HTTP 有什么特点?有什么优点和缺点?
4.HTTP 下层都有哪些协议?是如何工作的?
5.HTTP1.0 1.1 2.0区别
(1)HTTP1.0与HTTP1.1的区别
(2)HTTP1.1 HTTP2.0主要区别
6.osi七层模型/tcpip四层模型: 一个请求发送后,在这几层模型里边都干了什么
7.各种状态码503,401,403,204,206
8.HTTP与HTTPS的区别
9.HTTP报文是什么
10.HTTP报文由哪几个方面组成?
11.HTTP报文分为哪几类
12.HTTP常见的请求方法有哪些
13.HTTP实现的原理机制
1.什么是HTTP
答:HTTP是一个用在计算机世界里的协议,它确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。
2.你是怎么理解 HTTP 字面上的“超文本”和“传输协议”的?
答:
协议是什么,是我和你,你和他之间的约定和规范
传输是一定要有请求方,要有响应方的!所以是在两者之间,但又不限于两者之间,比如说,这里有A和B想要通话,那可不可以有中间人在其中,当然可以。
所以传输协议HTTP就是在计算机世界里专门用来在两点之间传输数据的约定和规范!
文本是什么呢,文本就是指有意义的,可以被浏览器,服务器这种上层应用程序处理的。
超文本,就是超越了普通文本的文本,是文字,视频,图片,声音的混合体,最关键的是含有超链接,能够从一个超文本跳转到另一个超文本,形成复杂度,非线性的,网状的结构关系!
3.HTTP 有什么特点?有什么优点和缺点?
特点:
1.灵活可扩展的(优点),可以任意添加头字段实现任意功能;
2.HTTP是可靠传输协议,基于TCP/IP协议“尽量”保证数据的送达;
3.HTTP是应用层协议,比FTP,SSH等功能更多,能够传输任意数据;
4.HTTP使用了请求-应答模式,客户端主动发起请求,服务器被动恢复请求;
5.HTTP本质上是无状态的,每个请求都是互相独立,毫无关联的,协议不要求客户端或服务器记录请求相关信息。 优点:
1.HTTP 拥有成熟的软硬件环境,应用的非常广泛,是互联网的基础设施
2.HTTP 是无状态的,可以轻松实现集群化,扩展性能,
3.HTTP 是明文传输,数据完全肉眼可见,能够方便地研究分析,
缺点:
1.无状态,cookie
2.明文传输,不安全
3.HTTP 是不安全的,无法验证通信双方的身份,也不能判断报文是否被窜改; (集群化)负载均衡:把访问请求均匀分散到多台机器,实现访问集群化
4.HTTP 下层都有哪些协议?是如何工作的?
1.链接层,负责在WiFi这样的底层网络发送数据包
2.网络层,IP协议在这个地方
3.传输层,TCP/UDP协议在这个地方
TCP 是一个有状态的协议,需要先与对方建立连接然后才能发送数据,而且保证数据不丢失不重复。而 UDP 则比较简单,它无状态,不用事先建立连接就可以任意发送数据,但不保证数据一定会发到对方。两个协议的另一个重要区别在于数据的形式。TCP 的数据是连续的“字节流”,有先后顺序,而 UDP 则是分散的小数据包,是顺序发,乱序收。 4.应用层:用具体的应用传输数据。
5.HTTP1.0 1.1 2.0区别
(1)HTTP1.0与HTTP1.1的区别
1.HTTP1.0需要使用keep-alive参数来告知服务端要建立一个长连接,而HTTP1.1支持长连接。(HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因此最好能维持一个长连接,可以用个长连接来发多个请求。)
2.节约带宽(header和body的关系(100/401))
3.HTTP1.1有host域
(2)HTTP1.1 HTTP2.0主要区别
1.多路复用。
2.数据压缩。
3.服务器推送。
6.osi七层模型/tcpip四层模型: 一个请求发送后,在这几层模型里边都干了什么
我们用HTTP举例来说明,首先作为发送端的客户端在应用层(HTTP协议)发出一个想看某个Web页面的HTTP请求。
接着,为了传输方便,在传输层(TCP协议)把应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记及端口号后转发给网络层。
在网络层(IP协议)增加作为通信目的地的MAC地址后发给链路层。
7.各种状态码503,401,403,204,206
URI(统一资源标识符)
URL(统一资源定位符)
200:请求被正常处理 204:请求被受理但没有资源可以返回 206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。 301:永久性重定向 302:临时重定向 303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上 304:发送附带条件的请求时,条件不满足时返回,与重定向无关 307:临时重定向,与302类似,只是强制要求使用POST方法 400:请求报文语法有误,服务器无法识别 401:请求需要认证 403:请求的对应资源禁止被访问 404:服务器无法找到对应资源 500:服务器内部错误 503:服务器正忙
8.HTTP与HTTPS的区别
HTTPS是安全超文本协议,在HTTP的基础上有更强的安全性。简单来说,HTTPS是使用TLS/SSL加密的HTTP协议。
9.HTTP报文是什么
HTTP报文是HTTP协议在客户端与服务端之间传输的数据块。
10.HTTP报文由哪几个方面组成?
(1)起始行,包含了报文的一些信息
(2)头部,包含了报文的一些属性
(3)身体,包含了报文的一些数据
11.HTTP报文分为哪几类
分为两类,请求报文和响应报文
请求报文即客户端向服务端发送的请求数据块
响应报文即服务端向客户端发送的响应数据块
12.HTTP常见的请求方法有哪些
(1)GET 不包含主体,从服务端那里获取制定信息(获取资源)
(2)POSE,包含主体,向服务端发送待处理的数据(传输实体主体)
(3)PUT,包含主体,向服务端发送数据并替换指定的数据(传输文件)
(4)TRACE,不包含主体,沿着目标路径进行环回测试(追踪路径)
(5)HEAD,不包含主体,从服务端获取头部字段(获取报文头部)
(6)OPTIONS:不包含主体,询问支持方法!
(7)DELDETE:不包含主体,删除文件。
(8)CONNECT:不包含主体,要求用隧道协议连接代理
13.HTTP实现的原理机制
(1)域名解析
(2)发起TCP三次握手
(3)发起HTTP请求
(4)服务器响应HTTP请求
(5)浏览器解析HTML代码,并请求HTML中的资源(如JS,CSS,图片等)
(6)浏览器对页面进行渲染并呈现给用户
参考文献:
HTTP1.0 HTTP 1.1 HTTP 2.0主要区别
极客时间:透视HTTP
图解HTTP
HTTP和HTTPS协议,看一篇就够了