# HTTP筆試部分
點擊關注本[公眾號](http://www.hmoore.net/book/dsh225/javascript_vue_css/edit#_118)獲取文檔最新更新,并可以領取配套于本指南的《**前端面試手冊**》以及**最標準的簡歷模板**.
[TOC]
> 此部分是我早前在網上搜集的,已無法找出出處
## 緩存題
假設我們有一個HTML頁面,如下:
~~~
<!-- page.html -->
<!DOCTYPE html>
http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>page頁</title>
</head>
<body>
<img src="images/head.png" />
<a href="page.html">重新訪問page頁</a>
</body>
</html>
~~~
加載此頁面后,會獲取圖片,圖片請求返回的響應頭為
~~~
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: image/png
Last-Modified: Tue, 08 Nov 2016 06:59:00 GMT
Accept-Ranges: bytes
Date: Thu, 10 Nov 2016 02:48:50 GMT
Content-Length: 3534
~~~
### 問題一:當點擊“重新訪問 page 頁”鏈接重新加載該頁面后, head.png 如何二次加載?
響應頭的`no-cache`表達的是可以緩存,但是每次都需要去服務器確認緩存資源的新鮮度,而不是不緩存,這是個坑。
~~~
Cache-Control: no-cache
~~~
如果不跳這個坑的話,這個問題就簡單了:圖片會發出請求頭帶上`If-Modified-Since: Tue, 08 Nov 2016 06:59:00 GMT`,服務器確認新鮮度,如果客戶端資源是新鮮資源則返回304,否則返回200并帶上新的圖片資源。
### 問題二:如果將上述信息中的 Cache-Control 設置為 private,那么結果又會如何呢?
當`Cache-Control: private`之后,說明一個問題,響應頭沒有給到任何緩存策略,這個時候客戶端會怎么處理?
現在瀏覽器會有一個處理方法,當響應頭沒有任何緩存策略的時候有一套自己的處理機制,即`Expires = 當前時間(Date - Last-Modified) * 10%`,簡單理解就是響應頭的Date時間與Last-Modified的時間差的十分之一作為緩存的過期時間。
按照這個處理流程,如果馬上重新加載,則會直接讀取本地緩存內容 ,無需向服務器請求。
* * *
## ajax和axios、fetch的區別
https://www.jianshu.com/p/8bc48f8fde75
## 公眾號
想要實時關注筆者最新的文章和最新的文檔更新請關注公眾號**程序員面試官**,后續的文章會優先在公眾號更新.
**簡歷模板**:關注公眾號回復「模板」獲取
《**前端面試手冊**》:配套于本指南的突擊手冊,關注公眾號回復「fed」獲取

- 前言
- 指南使用手冊
- 為什么會有這個項目
- 面試技巧
- 面試官到底想看什么樣的簡歷?
- 面試回答問題的技巧
- 如何通過HR面
- 推薦
- 書籍/課程推薦
- 前端基礎
- HTML基礎
- CSS基礎
- JavaScript基礎
- 瀏覽器與新技術
- DOM
- 前端基礎筆試
- HTTP筆試部分
- JavaScript筆試部分
- 前端原理詳解
- JavaScript的『預解釋』與『變量提升』
- Event Loop詳解
- 實現不可變數據
- JavaScript內存管理
- 實現深克隆
- 如何實現一個Event
- JavaScript的運行機制
- 計算機基礎
- HTTP協議
- TCP面試題
- 進程與線程
- 數據結構與算法
- 算法面試題
- 字符串類面試題
- 前端框架
- 關于前端框架的面試須知
- Vue面試題
- React面試題
- 框架原理詳解
- 虛擬DOM原理
- Proxy比defineproperty優劣對比?
- setState到底是異步的還是同步的?
- 前端路由的實現
- redux原理全解
- React Fiber 架構解析
- React組件復用指南
- React-hooks 抽象組件
- 框架實戰技巧
- 如何搭建一個組件庫的開發環境
- 組件設計原則
- 實現輪播圖組件
- 性能優化
- 前端性能優化-加載篇
- 前端性能優化-執行篇
- 工程化
- webpack面試題
- 前端工程化
- Vite
- 安全
- 前端安全面試題
- npm
- 工程化原理
- 如何寫一個babel
- Webpack HMR 原理解析
- webpack插件編寫
- webpack 插件化設計
- Webpack 模塊機制
- webpack loader實現
- 如何開發Babel插件
- git
- 比較
- 查看遠程倉庫地址
- git flow
- 比較分支的不同并保存壓縮文件
- Tag
- 回退
- 前端項目經驗
- 確定用戶是否在當前頁面
- 前端下載文件
- 只能在微信中訪問
- 打開新頁面-被瀏覽器攔截
- textarea高度隨內容變化 vue版
- 去掉ios原始播放大按鈕
- nginx在MAC上的安裝、啟動、重啟和關閉
- 解析latex格式的數學公式
- 正則-格式化a鏈接
- 封裝的JQ插件庫
- 打包問題總結
- NPM UI插件
- 帶你入門前端工程
- webWorker+indexedDB性能優化
- 多個相鄰元素切換效果出現邊框重疊問題的解決方法
- 監聽前端storage變化