http 學習
網絡基礎
- IP(Internet Protocol) 網際協議
- TCP(Transmission Control Protocol) 傳輸控制協議,面向鏈接的,可靠的協議
- UDP(User Datagram Protocol) 用戶數據報協議
- URI(Uniform Resource Identifier) 統一資源定位符
- DNS(Domain Name System) 提供域名與IP地址之間的解析
- 網絡分層協議(應用層、傳輸層、網絡層、鏈路層、物理層)
http請求支持的方法
- GET
- POST
- PUT
- HEAD 獲取報文首部
- DELETE
編碼提高傳輸速率
- 壓縮傳輸的內容編碼
- gzip(GNU zip)
- compress(UNIX系統標準壓縮)
- deflate(zlib)
- identity(identity)
- 分割發送的分塊傳輸編碼
http狀態碼
-
2XX 成功web
- 200 OK
- 204 No Content 請求處理成功但沒資源返回
- 206 Partial Content 對資源的某一部分請求
-
3XX 重定向sql
- 301 Moved Permanently 資源的URI已更新,永久性重定向
- 302 Found 資源臨時重定向
- 303 See Other 資源URI已更新,303狀態碼明確表示客戶端應該採用GET方法獲取資源
- 304 Not Modified 服務端資源未改變,能夠直接使用能夠的未過時的緩存
-
4XX 客戶端錯誤shell
- 401 Bad Request 客戶端錯誤,通常是參數格式錯誤
- 401 Unauthorized 沒有權限
- 403 Forbidden 禁止訪問
- 404 Not Found 資源未找到
-
5XX 服務端錯誤瀏覽器
- 500 Internal Server Error
- 502 Bad Gateway 網關或代理服務器錯誤
- 503 Service Unavaliable 服務端沒法處理請求
代理
接受客戶端請求轉發給服務端,利用緩存技術減小網絡帶寬的流量,組織內部針對特定網站的訪問控制,以獲取訪問日誌爲主要目的緩存
- 緩存代理 預先將資源的副本保存在代理服務器上
- 透明代理 不對報文作任何加工
HTTP首部
-
通用首部安全
- Cache-Control 指定緩存機制
- Connection 管理持久鏈接
- Date http報文建立的日期和時間
- Pragma: === Cache-Control
- Transfer-Encoding 傳輸報文主體時採用的編碼方式,僅對分塊傳輸編碼有效
-
請求首部服務器
- Accept 通知服務器用戶代理可以處理的媒體類型及媒體類型的相對優先級
- Accept-Charset 通知服務器用戶代理支持的字符集以及字符集的優先順序
- Accept-Encoding 告知服務器用戶代理支持的內容編碼及內容編碼的優先順序(gzip, compress, deflate)
- Accept-Language 告知服務器用戶可以處理的天然語言以及優先級
- Authorization 告知服務器用戶代理的認證信息
- Expect
- Form
- If-Match
- If-Modified-Since
- If-Range
- If-Unmodified-Since
- Max-Forwords 指定通過服務器的最大數目
- Proxy-Authorization
- Range 請求的範圍
- Referer 請求原始資源的URL(網站的url)
- TE 客戶端能處理的編碼方式以及相對優先級
- User-Agent 建立請求的瀏覽器和代理的名稱
-
響應首部cookie
- Accept-Ranges
- Age 源服務器在多久前建立了資源
- ETag
- Loation
- Proxy-Authenticate
- Retry-After 告知客戶端多久以後再次發送請求
- Server 服務器應用程序的信息
- Vary 對緩存進行控制
-
實體首部字段網絡
- Allow 通知客戶端請求資源指定的方法
- Content-Ecoding 實體主體的編碼方式
- Content-Language 實體主體使用的天然語言
- Content-Length 實體主體部分的大小
- Content-Location 報文主體部分相對應的URI
- Content-MD5
- Content-range 告知客戶端做爲相應返回的實體的哪一個部分符合範圍請求
- Content-Type 實體主體內對象的媒體類型
- Expires 資源失效日期
- Last-Modified 資源最終修改時間
-
爲Cookie服務的首部字段session
- Set-Cookie 開始狀態管理所使用的cookie信息
- Cookie 保存在用戶本地,服務器接受到的cookie信息
HTTPS
-
HTTP缺點
- 通訊使用明文(不加密),內容可能會被竊聽
- 不驗證通訊方的身份,所以有可能遭遇假裝
- 沒法證實報文的完整性,因此有可能遭遇假裝
- 沒法證實報文的完整性,因此有可能已遭篡改
-
HTTPS(HTTP secure)
-
HTTPS缺點
- 通訊慢 除了http請求還行進行ssl通訊,總體處理通訊量增長
- 大量消耗cpu和內存資源,致使處理速度變慢, 對報文加解密消耗資源
用戶身份驗證
web攻擊技術(web安全)
-
因輸出值轉義不徹底引起的安全漏洞
- 跨站腳本攻擊
- sql注入攻擊
- os命令注入攻擊
- http首部注入攻擊
- 在響應首部字段內插入換行,添加任意響應首部或主題的一種攻擊
- 郵件首部注入攻擊
- 目錄遍歷攻擊
- 對本無心對外公開的目錄,經過非法截斷期路徑後,達成訪問目的的攻擊(可以使用../等相對路徑定位到絕對路徑)
- 遠程文件包含漏洞
- 當部分腳本內容須要從其餘文件讀入時,攻擊者利用指定外部服務器的url充當依賴文件,讓腳本讀取以後運行任意腳本
-
設計上的缺陷引起的安全漏洞
-
因會話管理疏忽引起的安全漏洞
-
其餘安全漏洞