הסיבה לכך שבירושלים נמצאו שלוש חומות המקיפות את העיר, קשורה קשר ישיר להתפתחותה של העיר. בתקופת בית שני הייתה ירושלים מוקפת נחלים וגאיות מדרום, ממזרח וממערב. נחל קדרון וגיא בן הינום היוו מחסומים טבעיים להתפתחות העיר לשלושת הכיוונים הללו, ועל כן התפתחה העיר ונבנתה לכיוון צפון. בכל פעם שנבנו שכונות חדשות בעיר הן הוקפו בחומה חדשה, והחומה הקודמת נשארה על תילה. החומה הראשונה הקיפה את העיר העליונה (בה שכנו משכנות העשירים), ואת העיר התחתונה (בה שכנו המעמדות הנמוכים). כאשר התפשטה ירושלים צפונה והוקם רובע חדש שגבל בהר הבית מצד מזרח, הוקף הרובע החדש בחומה נוספת, היא "החומה השנייה". בהמשך הוקמה מצפון לרובע החדש השכונה החדשה ביותר של ירושלים "בית זיתא", שנקראה על שם הנחל הסמוך לה - נחל בית זיתא. שכונה זו הוקפה בחומה השלישית שסבבה אותה מכל עבריה, והתחברה אל החומה המזרחית של הר הבית.
חומת נחמיה.
החומה הקדומה ביותר מראשית ימי הבית השני, שאינה מתוארת כלל אצל יוסף בן מתתיהו, נבנתה על ידי נחמיה בימי שיבת ציון. נחמיה, ממנהיגי גולי בבל, נדהם מתיאור חומות ירושלים החרבות, ונשא תפילה לאלוהים שיסייע בעדו להשיב את העם הגולה לירושלים. זמן קצר לאחר מכן יצא באישור ארתחששתא הראשון מלך פרס לירושלים, ובחן בעצמו את מצב החומות. הוא נוכח כי העדות ששמע הייתה מהימנה, וכי החומות כה הרוסות, עד כי בקושי הצליחה הבהמה שעליה רכב לעבור על גלי האבנים:
במאמץ גדול הצליח נחמיה לבצר מחדש את העיר, תוך התמודדות עם בני עמים אחרים תושבי האזור שהתנגדו לבנייה. האילוצים, וכן קוטנה של האוכלוסייה היהודית ששבה לירושלים, תרמו כנראה לכך שבוצע ביצור של הגבעה המזרחית בלבד, וזאת תוך 52 יום. בכך הוחזרה חומת ירושלים לחצי מהגובה שלה וכמעט לגודלה הראשוני מראשית תקופת בית ראשון. לא נשארו כמעט שרידים מחומה זו, למעט קטע קטן בחלק העליון של עיר דוד, אולם יש החולקים על זיהוי זה.
החומה הראשונה.
בחלוף השנים הלכה אוכלוסייתה של ירושלים וגדלה, והעיר התפשטה שוב אל מחוץ לחומות לגבעה המערבית. שוב הייתה בירושלים "העיר העתיקה" על הגבעה המזרחית, ופרוור חדש על הגבעה המערבית, שעמד מפורז ללא חומות. במאה השנייה לפנה"ס, עם גירוש היוונים מירושלים וכינון ממלכת החשמונאים, הוקף הפרוור בחומה, כך שהעיר חזרה שוב לגודלה המלא בתוך חומות, כבשלהי ימי בית ראשון. חומה זו עברה כמעט במדויק בתוואי החומה שבנה המלך חזקיהו סביב הר ציון, תוך ניצול שרידים של החומה הקדומה, והגנה על אותן נקודות חולשה טופוגרפיות, שלא השתנו עם השנים.
מקובל לייחס את בניית החומה והשלמתה ליונתן ולשמעון, מנהיגי החשמונאים, אחיו של יהודה המכבי, וזאת על פי אזכורים בספר מקבים א', כמו: , או: . כן נראה שיוחנן הורקנוס הראשון בנו של שמעון, המשיך במלאכה, וזאת על פי הפסוק: . חלקים מהחומה הראשונה התגלו סביב הר ציון, לאורך חומת ימינו ליד שער יפו, וכן בקארדו, שבו התגלו שרידי שער, אשר מזוהים כ"שער גינת" המופיע בכתבי יוסף (תולדות מלחמת היהודים ברומאים, ספר ה', פרק ד', ב). במגדל דוד ובסביבותיו התגלו שיפוצים ושיפורים שביצע הורדוס בחומה הראשונה, כמו חיזוק החומה ועיבויה וכן בניית שלושה מגדלי ענק. ממצאים אלה מלמדים על חוסנה של החומה, כמתואר אצל יוסף בן מתתיהו:
החומה השנייה.
בהמשך תקופת בית שני הלכה והתמלאה ירושלים, עד ש"נלחצה" בין שתי הגאיות העמוקים – נחל קדרון ממזרח וגיא בן הינום ממערב ומדרום. העיר התפשטה אפוא שוב אל המישור הרחב שמצפון לה, לצדו המערבי של הר-הבית, מעבר לנחל הצולב, כך ששוב נוצר לירושלים פרוור מפורז מחוץ לחומה. השוק הגדול הסמוך לכותל המערבי של הר הבית הוסיף והתרחב לכיוון צפון, ורובע חדש נוצר סביב השווקים שהתהוו במקום עם גידול המסחר בהם. הרובע שהתפתח ממערב ומצפון להר הבית ובצמוד אליו, תוּחם במהלך המאה הראשונה לפנה"ס בחומה שנצמדה כ"אוזן" לחומה החשמונאית ("החומה הראשונה"), ונמתחה כקשת מצפון-מערב ועד הר הבית. חומה זו החדשה נקראה "החומה השנייה". ישנן דעות המייחסות את בניית החומה השנייה למלך הורדוס, אולם ייתכן כי הבונה היה אחד מאחרוני מלכי שושלת בית חשמונאי, אלכסנדר ינאי או יוחנן הורקנוס השני.
מאחר שהמישור הצפוני אחיד למדי בגובהו ושטוח, היה על בוני החומה להחליט באופן שרירותי היכן תעבור החומה, אולם הארכאולוג גבריאל ברקאי טוען כי ההחלטה כלל לא הייתה שרירותית: עוד בימי בית ראשון נחצב חפיר במישור הצפוני, הרחק מחומת העיר, כמכשול אסטרטגי לכלי מלחמה (היום – בין שער הפרחים לשער שכם). ייתכן, אם כן, שההחלטה לבנות את הקטע הצפוני ביותר של החומה השנייה דווקא שם נבע מהרצון לנצל את החפיר הקדום לטובת החומה החדשה. כך או כך, יש המזהים שרידים של החומה השנייה באזור שער שכם, אך זיהוי זה מוטל בספק. נכון ל-2011 טרם התגלו הוכחות ברורות לקיומה של החומה השנייה, והתוואי שלה משוער בלבד.
גם התיחום המערבי שלה, פחות או יותר קו ישר מאזור שער שכם עד לחומה הראשונה (מקביל לתוואי רחוב שוק הקצבים של היום), נובע מן ההשערה שהחומה השאירה בחוץ את בתי הקברות. בית הקברות הידוע ביותר מאותה התקופה בתחום הקרוב הוא גבעת הגולגולתא ששם, בין השאר, נצלב ישו וגם נקבר (ולימים נבנתה על קברו כנסיית הקבר וסביבה נבנה הרובע הנוצרי).
החומה השלישית.
במהלך המאה הראשונה לספירה המשיכה ירושלים לגדול כלפי צפון, ושוב התגוררו חלק מתושביה בשכונות מפורזות, כנראה בעלות אופי חקלאי יותר. בשנות ה-40 של המאה הראשונה נחלץ המלך אגריפס הראשון להגן על יושבי שכונות אלו, והחל בבניית חומה היקפית ארוכה. הבנייה הופסקה בפקודת הקיסר קלאודיוס, שחשש שביצור ירושלים יפגע בשלטון הרומי בארץ ישראל. השלמת הבנייה נעשתה בחופזה רק כ-25 שנה לאחר מכן על ידי תושבי ירושלים, במסגרת ההכנות למרד הגדול. איכות החומה בעקבות כך הייתה נמוכה בהרבה מהמתוכנן, אף שהיו בה, על פי יוסף בן מתתיהו, כתשעים מגדלי שמירה. בסופו של דבר היא לא החזיקה מעמד מול מכונות המצור של הרומאים.
התיאור המקיף ביותר הקיים על אודות מראה ירושלים בשלהי תקופת בית שני מופיע בכתביו של יוסף בן מתתיהו, איש צבא והיסטוריון שחי בארץ ישראל באותה עת. בספרו תולדות מלחמת היהודים ברומאים מתוארות שלוש חומות שהקיפו את ירושלים, שכל אחת מהן הגנה על חלק אחר של העיר. הוא מכנה את החומות בשם "הראשונה" (או "הישנה"), "השנייה" ו"השלישית", ובמחקר הארכאולוגי מקובל עד היום להשתמש בכינויים אלה לחומות ירושלים בתקופת בית שני.
מתיאורי חורבן ירושלים בכתבי יוסף, עולה שהחומות חרבו עד היסוד, ורק חלק קטן מהן הושאר בידי הקיסר טיטוס, כדי שהדורות הבאים יידעו להעריך את עוצמת העיר שכבש. שרידים של החומה השלישית מצויים לאורך רחוב 'החומה השלישית' בפאתי שכונת מאה שערים סמוך לדרך שכם. הם התגלו בשנות ה-20 של המאה ה-20 ונחקרו בידי הארכאולוגים הישראלים, סוקניק ומאיר.
חומות ירושלים בתקופה הרומית והביזנטית.
כאשר נחרבה ירושלים, נהרסו חומותיה עד היסוד. המידע על מצב העיר בתקופה זו עמום וקטוע; מן המקורות עולה כי העיר עמדה במשך עשרות שנים חרבה ופרוזה. בסביבות שנת 130 לספירה החל ככל הנראה המצביא הרומי איליוס אדריאנוס לבנות את ירושלים מחדש, כעיר אלילית, והמיר את שמה היהודי לאיליה קפיטולינה (ראו ערך מרד בר כוכבא, על המחלוקת בנושא בניית העיר אילייה קפיטולינה). אולם למרות הבנייה מחדש, לא נבנתה חומה חדשה לעיר, דבר המוכח מהיעדרותם המוחלטת של ממצאים כלשהם לביצורים מן התקופה. ירושלים נותרה אפוא פרוזה ונתונה רק להשגחת הלגיון העשירי פרטנסיס, שישב בה כחיל מצב.
לאחר שאדריאנוס ניצח את בר כוכבא במרד בשנת 135, הוא בנה בירושלים כמה שערי ניצחון, שאחד מהם עומד היום בבסיסו של שער שכם, אך ככל הידוע, אף לא אחד משערים אלה שולב בחומה כלשהי. כך, במשך מאות שנות השלטון הרומי בארץ ישראל, עמדה ירושלים פרוזה ללא חומות.
חומת אאודוקיה.
רק במאה החמישית, בעיצומה של התקופה הביזנטית, התחוללה תפנית בירושלים: אליה אודוקיה, אשתו של קיסר ביזנטיון תאודוסיוס השני שהייתה נוצרייה אדוקה, הורתה על בניית חומה ארוכה וחזקה סביב העיר. באותה עת היא התגוררה בירושלים, וראתה בפסוק () צו אלוהי הקורא לה לבצר את העיר, שכן משמעות שמה היווני – אאודוקיה - הוא "המיטיבה".
חומת אאודוקיה הייתה אחת הארוכות שידעה העיר. היא הקיפה את עיר דוד, הר ציון ואת כל מרחב העיר העתיקה של ימינו. תיאור ויזואלי של חומת אאודוקיה ניתן למצוא במפת מידבא. במפה זו מתוארת ירושלים כשהיא מוקפת בחומה אליפטית גדולה, ומוגנת בשערים ובמגדלי שמירה. מקורות כתובים בני התקופה מספרים אף הם על החומה, כמו אנטוניוס מרטיר, שביקר בירושלים בשנת 570 וכתב: .
החומה נחשבת לגדול שבמפעלי הבנייה של אאודוקיה בעיר אך לא היחיד. מפעליה הרבים הצריכו מימון רב שבשלב מסוים קופת המדינה לא הצליחה לכסות ולכן היא פנתה לגיוס המוני. אחד מיעדי הגיוס שלה היו היהודים - אאודוקיה התירה להם להתיישב בעיר לראשונה מאז חורבן בית שני תמורת תשלום גבוה.
שרידים של חומת אאודוקיה ניתן למצוא בקצה הגן הארכאולוגי ירושלים, סמוך לפינה הדרומית-מזרחית של הר הבית, שם השתמר קטע חומה נאה באורך של כ-20 מטרים; כן נתגלו שרידים מחומת אאודוקיה בחפירות שנערכו בשנת 2008 בדרום-מערב הר ציון; וכן סמוך לבריכת השילוח, במדרון המזרחי של עיר דוד, וכן בחומה הצפונית ליד שער שכם ושער הפרחים.
חומות ירושלים בימי הביניים.