HTTP全称

超文本协议传输

HTTP工作流程

首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。

 1.收线客户机与服务器需要建立连接,只要单击某个超级连接,http的工作开始

 2.建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号、后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

 3.服务器接到请求后,给与相应的相应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

 4.客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开链接。

HTTP协议的主要特点

简单快速,灵活,无连接,无状态

HTTP报文的组成部分

前端面试——HTTP协议方面

请求报文:请求行:请求方法  URL地址  协议名称或版本号

                    请求头:   键值对  服务端据此获取客户端的信息

                    空行:      分隔请求头和请求体

                    请求体:   通过请求体传值

响应报文: 状态行: 说明所请求的资源情况

                     响应头 : 描述服务器基本信息

                     空行 : 分隔响应头和响应体

                     响应体:服务端返回的数据

HTTP方法

POST: 传输资源

GET: 获取资源

PUT:更新资源

DELETE:删除资源

HEAD:获得报文首部

POST和GET的区别

GET在浏览器回退时是无害的,而POST会再次提交请求(★)

GET产生的URL地址可以被收藏,而POST不可以

GET请求会被浏览器主动缓存,而POST不可以(★)

GET请求只能进行url编码,而POST支持多种编码方式

GET请求参数会被完整保留在浏览器的历史记录里,而POST中的参数不会被保留(★)

GET请求在URL中传送的参数是有长度限制的,而POST没有限制(★)

对参数的数据类型,GET值接收ASCII字符,而POST没有限制

对参数的数据类型,GET只接收ASCII字符,而POST没有限制

GETPOST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息

GET参数通过URL传递,POST放在Request body中(★)

HTTP状态码

1xx:指示信息-表示请求已接收,继续处理

2xx:成功-表示请求已被成功接收

3xx:重定向-要完成请求必须进行更进一步的操作

4xx:客户端错误-请求有语法错误或请求无法实现

5xx:服务器错误-服务器未能实现合法的请求

前端面试——HTTP协议方面

前端面试——HTTP协议方面

什么是持久连接:(1.1版本才支持)

HTTP协议采用请求-应答模式,当使用普通模式,即非Keep-Alive模式时,每个请求、应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)

当使用Keep-Alive模式,(又称持久连接,连接重用)时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后续请求时,Keep-Alive功能避免了建立或者重新建立连接

什么是管线化

管线化机制通过持久连接完成,仅HTTP/1.1支持此技术

只有GET和HEAD请求可以进行管线化,而POST则有所限制

初次创建连接时不应启动管线机制,因为对方(服务器)不一定支持HTTP/1.1版本的协议

HTTP/1.1要求服务器端支持管线化,但并不要求服务器端也对响应进行管线化处理,只是要求对于管线化的请求不失败即可

由于上面提到的服务器端问题,开启管线化很可能并不会带来大幅度的性能提升,而且很多服务器端和代理程序对管线化的支持并不太好,因此现代浏览器默认并为开启管线化支持

相关文章:

  • 2021-08-29
  • 2022-12-23
  • 2021-05-16
  • 2021-07-14
  • 2021-07-08
  • 2021-05-07
  • 2021-08-30
  • 2021-06-24
猜你喜欢
  • 2021-08-19
  • 2021-07-27
  • 2021-08-22
  • 2021-06-14
  • 2021-11-25
  • 2022-12-23
  • 2022-02-19
相关资源
相似解决方案