HTTP协议的原理

HTTP的重要性

  • 前端所有的静态资源加载和数据加载都需要

  • 后端做出来的数据发送给前端都是需要经过HTTP协议

  • 无论是开发和后端都是很需要去深入理解的

  • 浏览器和服务器之间怎么交互怎么去影响性能的

简单的例子

  • 输入URL打开网页

  • AJAX获取数据

  • html写入IMG标签加载图片

网络协议的分层

经典的五层模型

底三层

  • 物理层主要作用是定义物理设备如何传输数据

  • 数据链路层在通讯的实体之间建立数据连接

  • 网络层为数据在节点之间传输创建逻辑链路

传输层

  • 向用户提供可靠的端到端(END-to-END)服务

  • 传输层向高层屏蔽了下层数据通讯的细节

应用层

  • 为应用软件提供了很多的服务

  • 构建与TCP协议之上

  • 屏蔽网络传输相关的细节

HTTP编年史

HTTP/0.9

  • 只有一个命令GET

  • 没有HEADER等描述数据的信息

  • 服务器发送完毕,就关闭TCP连接

HTTP/1.0

  • 增加了很多命令

  • 增加status code和header

  • 多字符集支持、多部分发送、权限、缓存等

HTTP/1.1

  • 持久连接

  • pipeline

  • 增加host和其他一些命令

HTTP/2.0

  • 所有数据以二进制传输(帧)

  • 同一个连接里面发送多个请求不再需要按照顺序来

  • 头信息压缩以及推送等提高效率的功能

URL\URI\URN

URI

是一个包含URL、URN的统一的定义

  • Uniform Resource Identifier 统一资源标识符

  • 用来唯一标示互联网上的信息资源

URL

  • Uniform Resource Locator 统一资源定位器

URN

  • 永久统一资源定位符(资源随便变动都可以找到)

  • 目前没有很成熟的解决方案

HTTP报文

  • GET -> POST -> CODE(200 OK!)

  • 200~299(操作是成功的) 300~399(需要重定向获取数据 ) 400~499(发送的请求有问题) 500~599(服务器发生了错误)

HTTP协议的原理》有4个想法

  1. I am extremely impressed with your writing skills as well as with the layout on your blog. Is this a paid theme or did you modify it yourself? Anyway keep up the excellent quality writing, it is rare to see a nice blog like this one these days..

  2. Good day very cool site!! Guy .. Excellent .. Amazing .. I’ll bookmark your web site and take the feeds additionally¡KI am happy to seek out a lot of helpful information right here within the submit, we want develop more strategies in this regard, thank you for sharing. . . . . .

发表评论