Vertex Array Object (VAO) is an OpenGL Object that encapsulates all of the state needed to specify vertex data
A Buffer Object is an OpenGL object that allows users to store data on the GPU
"I have issue with drawing big vbo with vao because the vbo has more than 65536 vertices and my vao is just uint that has maximum 65536"
from question "OpenGL large VBO and VAO"
"Is it possible to use the same vbo with more than one vao like this"
from question "Can a VBO be bound to multiple VAOs?"