首頁 » 面試題庫 » 後端 » 入門(Beginner) – 後端工程師面試問題彙總-20240515

最近OpenAI推出了GPT-4o模型,用AI整理了些後端工程師在技術面試時可能會遇到的問題。依等級分為入門級(Beginner)、初級(Junior)、中級(Intermediate)及高級(Senior),也有分散式任務及身份驗證機制專章。答案僅供參考,請搭配其他資料服用。

入門(Beginner)

1. 請描述HTTP請求的結構是什麼?

  • HTTP請求行: 包括請求方法(如GET、POST)、目標URL和HTTP版本,如 GET /index.html HTTP/1.1
  • HTTP頭部(Headers): 包含請求的元數據和協商信息,如 Content-TypeUser-Agent等。
  • 請求正文(Body): 主要在POST請求中使用,包含數據負載,如表格數據或JSON對象。

2. 什麼是GET和POST請求,有哪些主要區別?

  • GET請求:
    • 用於從服務器獲取數據。
    • 請求參數附加在URL後面。
    • 無正文部分,數據在URL中顯示,可能被緩存。
  • POST請求:
    • 用於發送數據到服務器以創建或更新資源。
    • 數據包含在請求的正文部分。
    • 更適合大規模數據傳輸,且數據隱性(不出現在URL中)。

3. 什麼是HTTP狀態碼,請列舉出幾個常見的狀態碼及其含義。

  • 200 OK: 請求成功並返回結果。
  • 201 Created: 請求成功且資源已創建。
  • 400 Bad Request: 請求無法被理解或格式錯誤。
  • 401 Unauthorized: 用戶未經身份驗證。
  • 404 Not Found: 請求的資源不存在。
  • 500 Internal Server Error: 服務器發生錯誤。

4. 請解釋什麼是RESTful API,並舉例說明它的主要特點。

  • RESTful API是遵循REST(Representational State Transfer)架構風格的API,主要特點包括:
    • 基於URL設計,每個URL代表一種資源。
    • 使用HTTP方法來操作資源(如GET檢索資源,POST創建資源,PUT更新資源,DELETE刪除資源)。
    • 無狀態(Stateless),每個請求都應包含完成該請求所需的全部信息。
    • 支持多種數據格式,但通常使用JSON。

5. 請描述什麼是資料庫的ACID屬性。

  • Atomicity(原子性): 事務操作要麼全部完成,要麼全部不執行,確保數據不會處於“半成品”狀態。
  • Consistency(一致性): 事務執行前後,資料庫保持一致性狀態,遵循預定規則和約束條件。
  • Isolation(隔離性): 不同事務之間互不干擾,並行執行時不會產生數據衝突。
  • Durability(持久性): 事務一旦完成,其結果將被永久保留,即使系統崩潰也不會丟失數據。

6. 什麼是Primary Key和Foreign Key,它們分別有什麼作用?

  • Primary Key(主鍵):
    • 唯一標識數據表中的每一行記錄。
    • 不允許重複或NULL值。
    • 例如,在users表中,user_id可以作為主鍵。
  • Foreign Key(外鍵):
    • 用於建立和加強數據表之間的連接。
    • 引用其他表的主鍵,確保數據的參照完整性。
    • 例如,在orders表中,user_id可以作為外鍵,指向users表。

7. 請解釋什麼是JOIN操作,並簡單描述不同類型的JOIN(INNER JOIN, LEFT JOIN等)

  • JOIN操作用於根據某些條件將多個表中的相關數據組合起來。
  • INNER JOIN: 只返回兩個表中鍵匹配的行。 SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id;
  • LEFT JOIN(或LEFT OUTER JOIN): 返回左表中的所有行,即使右表中沒有匹配的行。 SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id;
  • RIGHT JOIN: 返回右表中的所有行,即使左表中沒有匹配的行。
  • FULL JOIN(或FULL OUTER JOIN): 返回兩個表中的所有行,無論是否匹配。


One Reply to “入門(Beginner) – 後端工程師面試問題彙總-20240515”

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *