前端开发中常见的 HTTP 相关知识(一)

栏目: 后端 · 前端 · 发布时间: 5年前

内容简介:前端开发中总是要和接口打交道,所以为了尽可能减少自己表述上的不严谨,文中会有不少外链,建议大家还是能点进去看一下,也欢迎帮忙纠正。老司机可以直接忽略本段内容,我们先简单了解下

前言

前端开发中总是要和接口打交道,所以 HTTP 相关内容多多少少还是要知道一些,干起活来才能事半功倍。下面我从业务出发,简单说下一些可能会碰到的知识点。

为了尽可能减少自己表述上的不严谨,文中会有不少外链,建议大家还是能点进去看一下,也欢迎帮忙纠正。

开始前的准备

老司机可以直接忽略本段内容,我们先简单了解下 HTTP 的基本知识

什么是HTTP协议

HTTPHypertext Transfer Protocol 超文本传输协议 的缩写,和 HTML 一样都是出自 Hypertext 家族的。处于 OSI model 中的应用层。

目前为止,经历了几个版本的迭代到了2, HTTP/3目前也是即将要标准化了

关于目前所有的HTTP相关协议的目录可以直接看 这里

wikipedia上关于HTTP的介绍

The Hypertext Transfer Protocol (HTTP) is an application protocol for distributed, collaborative, hypermedia information systems.[1] HTTP is the foundation of data communication for the World Wide Web, where hypertext documents include hyperlinks to other resources that the user can easily access, for example by a mouse click or by tapping the screen in a web browser. HTTP was developed to facilitate hypertext and the World Wide Web.

Development of HTTP was initiated by Tim Berners-Lee at CERN in 1989. Development of HTTP standards was coordinated by the Internet Engineering Task Force (IETF) and the World Wide Web Consortium (W3C), culminating in the publication of a series of Requests for Comments (RFCs). The first definition of HTTP/1.1, the version of HTTP in common use, occurred in RFC 2068 in 1997, although this was made obsolete by RFC 2616 in 1999 and then again by the RFC 7230 family of RFCs in 2014.

A later version, the successor HTTP/2, was standardized in 2015 (and HTTP/3 is its proposed successor (Internet Draft), that builds on HTTP/2 2 ), and is now supported by major web servers and browsers over Transport Layer Security (TLS) using Application-Layer Protocol Negotiation (ALPN) extension[4] where TLS 1.2 or newer is required.[5]

起始

最早是由万维网的创始人 Tim Berners-Lee 在1989年发起并于1990年完成了第一次服务器与客户端之间的通讯。

HTTP/0.9

发布于1991年的0.9版本,当时只有一个 GET 命令,只能回应HTML格式的字符串,结束以后就关闭TCP连接

HTTP/1.0 RFC-1945

发布于1996年的 1.0 版本,除了最早的 GET 以外还引入了 POSTHEAD 命令,以及各类标识缓存,请求状态等headers,使任何文件都可以通过http请求进行传输。

HTTP/1.1 RFC-2616

发布于1999年的 1.1 版本,也是目前使用基数最大的版本,

新增了几个基础 Method

  • PUT
  • DELETE
  • TRACE
  • OPTIONS
  • CONNECT

弥补了之前HTTP/1.0的一些不足, 包括:

  • 完善了之前缓存相关的设定,也便有了我们现在常说的 强缓存协商缓存 的概念
  • 默认采用持久连接,并能很好地配合代理服务器工作。支持以 piplining 的方式同时发送多个请求,从而降低了线路的负载也提升了HTTP请求的响应速度。
  • 部分安全性问题

HTTP/2.0 RFC-7540

发布于2015年的 2.0 版本,也是当前的最新标准。

基于谷歌提出的 SPDY 而来,之前用于Chrome浏览器中来访问Google的SSL加密服务,在HTTP/2发布后功成身退。

主要新增了以下内容

  • 多路复用
  • 请求头压缩 HPACK: RFC-7541
  • 帧、消息、流和TCP连接
  • 服务器推送

因为强制绑定了TLS,相关的证书又是一笔新的开支,加上各种历史遗留问题,目前大部分公司对HTTP/2的支持也是较为尴尬,就如同 ES6 一般,在落地好多年后依旧会被叫做 新特性

而解决的问题如服务器推送之类的在之前是可以通过 websocket 甚至客户端轮询等操作解决,而头部压缩等也只是对现有方式进行了少部分优化,所以实际应用也没那么多,而出现的不确定性又增多了,而本身又揽了一些TCP干的活,所以协议定下后争议还是挺多的。

可能还需要时间把老服务器老电脑老项目老 程序员 给替换掉才行。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

代码

代码

劳伦斯・莱斯格 / 李旭 / 中信出版社 / 2004-10-1 / 30.00元

劳伦斯·莱斯格的著作《代码》 问世便震动了学界和业界,被人称为“也许是迄今为止互联网领域最重要的书籍”,也被一些学者称为“网络空间法律的圣经”。 《代码》挑战了早期人们对互联网的认识,即技术已经创造了一个自由的环境,因而网络空间无法被规制——也就是说,网络的特性使它押脱了政府的控制。莱斯格提出,事实恰恰相反。 代码的存在证明,网络并不是本制拷贝 ,不可规制的,它并没有什......一起来看看 《代码》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具