Как правильно сверстать такой дизайн?
На flexbox как-то так:
https://jsfiddle.net/5mwhzr42/
Если header и footer с position: absolute, блоку content надо задать вертикальные отступы равные высоте хэдера и футера  - margin: 70px 0 100px;