A bifibration of categories is a functor
that is both a Grothendieck fibration as well as an opfibration.
Therefore every morphism $f : b_1 \to b_2$ in a bifibration has both a push-forward $f_* : E_{b_1} \to E_{b_2}$ as well as a pullback $f^* : E_{b_2} \to E_{b_1}$.
For $C$ any category with pullbacks, the codomain fibration $cod : [I,C] \to C$ is a bifibration.
Dually, for $C$ any category with pushouts, the domain opfibration $dom : [I,C] \to C$ is a bifibration.
The forgetful functor Top $\to$ Set is a bifibration. See also topological concrete category.
The forgetful functor Grpd $\to$ Set is a bifibration.
The forgetful functor Cat $\to$ Set is a bifibration.
Ordinary Grothendieck fibrations correspond to pseudofunctors to Cat, by the Grothendieck construction and hence to prestacks. For these one may consider descent.
If the fibration is even a bifibration, there is a particularly elegant algebraic way to encode its descent properties; this is monadic descent. The Benabou–Roubaud theorem characterizes descent properties for bifibrations.