As an essential of a soldier’s field equipment, both knapsack and haversack are now obsolete.
Whereas the latter carried his field rations, the knapsack was for personal items, such as changes of clothing.
However, such were not in accord with the original German military usage.
The haversack, as stated elsewhere, carried grain for a cavalryman’s horse; the knapsack, as its name implies, German knappen, “to eat”, was a sack or wallet of considerably lesser size which held the rations of the soldier.