古時候的城池不是很大, 一般都是四方形的, 也就是四面都有厚厚的城墻包圍著。 古時候也沒有空軍, 在又厚又高的城墻面前, 進攻方通常都沒有好的辦法, 守城方占有巨大的優勢。 許多比較重要的城池都有數道城墻, 比如宋朝的開封城就有外城、內城、宮城三道城墻, 要想跨過三道城墻不知道要犧牲掉多少士兵。 很多城池在城墻面前還開挖了很深很寬的護城河, 這又為攻打城池增加了難度。
有了城墻和護城河, 就阻滯了敵人進攻的步伐, 守城方就有時間使用弓箭等武器殺傷敵人。 攻城方雖然也能用弓箭還擊,
到了城下, 攻城方會使用沖車等攻城工具沖擊城門, 為了保護沖車, 還必須使用云梯上城墻分散守城方對沖車的攻擊。 此時, 守軍通常會使用石塊等物體砸向城墻下方、云梯上的士兵。 有時候找不到石塊等東西了, 會使用沸水、沸油, 通常都是沸水。 因為水比較好找, 也不用太干凈, 拿口大鍋, 煮沸后就潑向敵軍, 殺傷效果巨大。 還有一種比較惡心的方法, 堪稱古代化學武器, 就是使用金汁。 金汁可不是融化后的金水, 而是指煮沸的糞水, 由于糞便是黃色的, 就取名叫金汁。 由于糞水中還有大量的細菌, 煮沸之后,
守城方有時還會用投石車。 可能大家會認為投石車是攻城方用的, 其實不然, 守軍也會使用。 投石車一般布置在城內, 不在城墻上, 城墻上有觀察士兵, 在觀察士兵的指揮下攻擊, 擊毀敵方的井欄、投石車等攻城工具。
隨著時代的發展, 火炮發明之后, 攻城就容易多了, 守城就非常吃力了。