HTTP协议
文章目录:
- HTTP协议的主要特点
- HTTP报文的组成成分
- HTTP方法
- POST和GET的区别
- HTTP状态码
- 持久连接
- URL和URI的区别
- 管线化
1. HTTP协议的主要特点:

- 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
- 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
-
无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
-
无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
2. HTTP报文的组成成分:

请求行包括:
- http方法
- 页面地址
- 协议
- 版本号
请求头包括:
- 一些key/value值来告诉服务端,浏览器需要哪些内容,什么类型
空行的功能:
- 当遇到空行时,告诉服务端一下不是请求头的内容了,是请求体的内容。
3. HTTP协议方法:
- GET ---> 获取资源
- POST ---> 传输资源
- PUT ---> 更新资源
- DELETE ---> 删除资源
- HEAD ---> 获得报文首部
4. GET和POST的区别:
GET在浏览器回退时时无害的,POST会再次提交请求
GET请求会被浏览器主动缓存,而POST不会,除非手动设置
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留
GET请求在URL中传送的参数是有长度限制的(2kb),而POST没有限制
GET参数通过URL传递,POST放在Request body中
5. HTTP状态码:
- 1XX : 指示信息 -- 表示请求已经接收,继续处理
- 2XX:成功 -- 表示请求已经被服务器成功接收
- 3XX:重定向 -- 要完成请求必须进行更进一步的操作
- 4XX: 客户端错误 -- 请求有语法错误或请求无法实现
- 5XX:服务端错误 -- 服务器未能实现合法的请求
- 200:ok -- 客户端请求成功
- 206:Partial-Content -- 客户端发送一个带有range头的GET请求。 场景:加载视频,音频过大时。
- 301:Moved Permantly -- 永久性重定向
- 302:Found -- 临时重定向
- 304:Not-Modifed -- 客户端有缓冲的文档并发出了一个条件性的请求,服务端告诉客户,原来的缓冲的文档还可以继续使用。场景:当协商缓存时,返回304。
- 403:Forbidden -- 对被请求的页面访问禁止
- 500:Internal Server Error:服务器发生错误
- 503:Server Unavailable:服务器临时过载
6. 长连接与短连接:
Connection: keep-alive
HTTP1.0 默认使用短连接,也就是浏览器每进行一次http操作,就建立一次连接,任务结束后就中断连接,如每一个静态资源请求时都是一个单独的连接。
HTTP1.1 默认使用长连接,使用长连接,请求头会有Connection: keep-alive字段,在长连接的情况下,当一个网页打开完成后,客户端和服务端之间用于传输http的tcp连接不会关闭,如果客户端再次访问服务端页面,会继续使用这一条已经建立的连接。keep-alive不会永远保持,它会有一个持续时间,一般在服务器中配置,另外长连接需要服务器和客户端都支持才可以。
HTTP2.0
- 多路复用(一个tcp/ip连接可以请求多个资源)
- 首部压缩(http头部压缩,减少体积)
- 二进制分帧(在应用层跟传送层之间增加一个二进制分帧,改进传输性能,实现低延迟和高吞吐量)
- 服务器端推送(服务端可以对客户端的一个请求发出多个响应,可以主动通知客户端)
- 请求优先级(如果某个资源被赋予了优先级,它就会基于这个优先级来处理,由服务器来决定需要多少资源来处理该请求)
7. URL和URI的区别
URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。Web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个来URI来定位的
URI一般由三部组成:
①访问资源的命名机制
②存放资源的主机名
③资源自身的名称,由路径表示,着重强调于资源。
URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。
采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL一般由三部组成:
①协议(或称为服务方式)
②存有该资源的主机IP地址(有时也包括端口号)
③主机资源的具体地址。如目录和文件名等
8. 管线化:
- 在传统持久连接中,某个连接上消息的传递类似于
请求1 --> 响应1 --> 请求2 --> 响应2 --> 请求3 --> 响应3
- 管线化是把多个请求打包,一起发送给服务端,然后服务端把所有响应打包,一次响应过来。
请求1 --> 请求2 --> 请求3 --> 响应1 --> 响应2 --> 响应3

当面试官问你:给我说一下HTTP协议吧?如果你不能侃侃而谈,就请仔细阅读并记忆吧......
浙公网安备 33010602011771号