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.
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 decent properties; this is monadic descent. The Benabou–Roubaud theorem characterizes descent properties for bifibrations.