[TOC]
## 請求報文


### 請求行
{請求方法} + {URL字段} + {HTTP協議版本} 們用空格分隔。
例如,GET /index.html HTTP/1.1。
HTTP協議的請求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。
### 請求頭部
由關鍵字/值對組成,每行一對,關鍵字和值用英文冒號“:”分隔。請求頭部通知服務器有關于客戶端請求的信息,典型的請求頭有:
User-Agent:產生請求的瀏覽器類型。
Accept:客戶端可識別的內容類型列表。
Host:請求的主機名,允許多個域名同處一個IP地址,即虛擬主機。
請求頭說明Host接受請求的服務器地址,可以是IP:端口號,也可以是域名User-Agent發送請求的應用程序名稱Connection指定與連接相關的屬性,如Connection:Keep-AliveAccept-Charset通知服務端可以發送的編碼格式Accept-Encoding通知服務端可以發送的數據壓縮格式Accept-Language通知服務端可以發送的語言
### 請求數據
請求數據不在GET方法中使用,而是在POST方法中使用。POST方法適用于需要客戶填寫表單的場合。與請求數據相關的最常使用的請求頭是Content-Type和Content-Length
## 響應報文


### 狀態行
HTTP-Version Status-Code Reason-Phrase CRLF
其中,HTTP-Version表示服務器HTTP協議的版本;Status-Code表示服務器發回的響應狀態代碼;Reason-Phrase表示狀態代碼的文本描述。狀態代碼由三位數字組成,第一個數字定義了響應的類別,且有五種可能取值。
* 1xx:指示信息--表示請求已接收,繼續處理。
* 2xx:成功--表示請求已被成功接收、理解、接受。
* 3xx:重定向--要完成請求必須進行更進一步的操作。
* 4xx:客戶端錯誤--請求有語法錯誤或請求無法實現。
* 5xx:服務器端錯誤--服務器未能實現合法的請求。
常見狀態代碼、狀態描述的說明如下。
* 200 OK:客戶端請求成功。
* 400 Bad Request:客戶端請求有語法錯誤,不能被服務器所理解。
* 401 Unauthorized:請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用。
* 403 Forbidden:服務器收到請求,但是拒絕提供服務。
* 404 Not Found:請求資源不存在,舉個例子:輸入了錯誤的URL。
* 500 Internal Server Error:服務器發生不可預期的錯誤。
* 503 Server Unavailable:服務器當前不能處理客戶端的請求,一段時間后可能恢復正常,舉個例子:HTTP/1.1 200 OK(CRLF)。
### 響應頭部
與請求頭部類似,為響應報文添加了一些附加信息
響應頭說明Server服務器應用程序軟件的名稱和版本Content-Type響應正文的類型(是圖片還是二進制字符串)Content-Length響應正文長度Content-Charset響應正文使用的編碼Content-Encoding響應正文使用的數據壓縮格式Content-Language響應正文使用的語言
## 參考資料
[http題目](https://blog.csdn.net/yicixing7/article/details/79320821)
[結構明細](https://www.cnblogs.com/ldq2016/p/9055933.html)
- Android
- 四大組件
- Activity
- Fragment
- Service
- 序列化
- Handler
- Hander介紹
- MessageQueue詳細
- 啟動流程
- 系統啟動流程
- 應用啟動流程
- Activity啟動流程
- View
- view繪制
- view事件傳遞
- choreographer
- LayoutInflater
- UI渲染概念
- Binder
- Binder原理
- Binder最大數據
- Binder小結
- Android組件
- ListView原理
- RecyclerView原理
- SharePreferences
- AsyncTask
- Sqlite
- SQLCipher加密
- 遷移與修復
- Sqlite內核
- Sqlite優化v2
- sqlite索引
- sqlite之wal
- sqlite之鎖機制
- 網絡
- 基礎
- TCP
- HTTP
- HTTP1.1
- HTTP2.0
- HTTPS
- HTTP3.0
- HTTP進化圖
- HTTP小結
- 實踐
- 網絡優化
- Json
- ProtoBuffer
- 斷點續傳
- 性能
- 卡頓
- 卡頓監控
- ANR
- ANR監控
- 內存
- 內存問題與優化
- 圖片內存優化
- 線下內存監控
- 線上內存監控
- 啟動優化
- 死鎖監控
- 崩潰監控
- 包體積優化
- UI渲染優化
- UI常規優化
- I/O監控
- 電量監控
- 第三方框架
- 網絡框架
- Volley
- Okhttp
- 網絡框架n問
- OkHttp原理N問
- 設計模式
- EventBus
- Rxjava
- 圖片
- ImageWoker
- Gilde的優化
- APT
- 依賴注入
- APT
- ARouter
- ButterKnife
- MMKV
- Jetpack
- 協程
- MVI
- Startup
- DataBinder
- 黑科技
- hook
- 運行期Java-hook技術
- 編譯期hook
- ASM
- Transform增量編譯
- 運行期Native-hook技術
- 熱修復
- 插件化
- AAB
- Shadow
- 虛擬機
- 其他
- UI自動化
- JavaParser
- Android Line
- 編譯
- 疑難雜癥
- Android11滑動異常
- 方案
- 工業化
- 模塊化
- 隱私合規
- 動態化
- 項目管理
- 業務啟動優化
- 業務架構設計
- 性能優化case
- 性能優化-排查思路
- 性能優化-現有方案
- 登錄
- 搜索
- C++
- NDK入門
- 跨平臺
- H5
- Flutter
- Flutter 性能優化
- 數據跨平臺