A Buffer Object is an OpenGL object that allows users to store data on the GPU. Vertex Buffer Objects (VBOs) are buffer objects used to store vertex data for non-immediate-mode rendering.
VBOs offer substantial performance gains over immediate mode rendering primarily because the data resides in the video device memory rather than the system memory and so it can be rendered directly by the video device.
The Vertex Buffer Object specification has been standardized by the OpenGL Architecture Review Board as of OpenGL Version 1.5. Similar functionality was available before the standardization of VBOs via the Nvidia-created extension "Vertex Array Range"
Source: https://www.khronos.org/opengl/wiki/Vertex_Specification#Vertex_Buffer_Object