auto commit

This commit is contained in:
CyC2018
2020-11-18 03:00:45 +08:00
parent 236b85af83
commit 7899f565d3
41 changed files with 572 additions and 4565 deletions
+54 -10
View File
@@ -2,14 +2,58 @@
<!-- GFM-TOC -->
* [HTTP](#http)
* [一 、基础概念](#一-基础概念)
* [请求和响应报文](#请求和响应报文)
* [URL](#url)
* [二、HTTP 方法](#二http-方法)
* [GET](#get)
* [HEAD](#head)
* [POST](#post)
* [PUT](#put)
* [PATCH](#patch)
* [DELETE](#delete)
* [OPTIONS](#options)
* [CONNECT](#connect)
* [TRACE](#trace)
* [三、HTTP 状态码](#三http-状态码)
* [1XX 信息](#1xx-信息)
* [2XX 成功](#2xx-成功)
* [3XX 重定向](#3xx-重定向)
* [4XX 客户端错误](#4xx-客户端错误)
* [5XX 服务器错误](#5xx-服务器错误)
* [四、HTTP 首部](#四http-首部)
* [通用首部字段](#通用首部字段)
* [请求首部字段](#请求首部字段)
* [响应首部字段](#响应首部字段)
* [实体首部字段](#实体首部字段)
* [五、具体应用](#五具体应用)
* [连接管理](#连接管理)
* [Cookie](#cookie)
* [缓存](#缓存)
* [内容协商](#内容协商)
* [内容编码](#内容编码)
* [范围请求](#范围请求)
* [分块传输编码](#分块传输编码)
* [多部分对象集合](#多部分对象集合)
* [虚拟主机](#虚拟主机)
* [通信数据转发](#通信数据转发)
* [六、HTTPS](#六https)
* [加密](#加密)
* [认证](#认证)
* [完整性保护](#完整性保护)
* [HTTPS 的缺点](#https-的缺点)
* [七、HTTP/2.0](#七http20)
* [HTTP/1.x 缺陷](#http1x-缺陷)
* [二进制分帧层](#二进制分帧层)
* [服务端推送](#服务端推送)
* [首部压缩](#首部压缩)
* [八、HTTP/1.1 新特性](#八http11-新特性)
* [九、GET 和 POST 比较](#九get-和-post-比较)
* [作用](#作用)
* [参数](#参数)
* [安全](#安全)
* [幂等性](#幂等性)
* [可缓存](#可缓存)
* [XMLHttpRequest](#xmlhttprequest)
* [参考资料](#参考资料)
<!-- GFM-TOC -->
@@ -95,13 +139,13 @@ http 使用 URL( **U** niform **R**esource **L**ocator,统一资源定位符
### GET
\> 获取资源
> 获取资源
当前网络请求中,绝大部分使用的是 GET 方法。
### HEAD
\> 获取报文首部
> 获取报文首部
和 GET 方法类似,但是不返回报文实体主体部分。
@@ -109,7 +153,7 @@ http 使用 URL( **U** niform **R**esource **L**ocator,统一资源定位符
### POST
\> 传输实体主体
> 传输实体主体
POST 主要用来传输数据,而 GET 主要用来获取资源。
@@ -117,7 +161,7 @@ POST 主要用来传输数据,而 GET 主要用来获取资源。
### PUT
\> 上传文件
> 上传文件
由于自身不带验证机制,任何人都可以上传文件,因此存在安全性问题,一般不使用该方法。
@@ -132,7 +176,7 @@ Content-length: 16
### PATCH
\> 对资源进行部分修改
> 对资源进行部分修改
PUT 也可以用于修改资源,但是只能完全替代原始资源,PATCH 允许部分修改。
@@ -148,7 +192,7 @@ Content-Length: 100
### DELETE
\> 删除文件
> 删除文件
与 PUT 功能相反,并且同样不带验证机制。
@@ -158,7 +202,7 @@ DELETE /file.html HTTP/1.1
### OPTIONS
\> 查询支持的方法
> 查询支持的方法
查询指定的 URL 能够支持的方法。
@@ -166,7 +210,7 @@ DELETE /file.html HTTP/1.1
### CONNECT
\> 要求在与代理服务器通信时建立隧道
> 要求在与代理服务器通信时建立隧道
使用 SSL(Secure Sockets Layer,安全套接层)和 TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输。
@@ -178,7 +222,7 @@ CONNECT www.example.com:443 HTTP/1.1
### TRACE
\> 追踪路径
> 追踪路径
服务器会将通信路径返回给客户端。
@@ -863,7 +907,7 @@ DELETE /idX/delete HTTP/1.1 -> Returns 404
为了阐述 POST 和 GET 的另一个区别,需要先了解 XMLHttpRequest:
\> XMLHttpRequest 是一个 API,它为客户端提供了在客户端和服务器之间传输数据的功能。它提供了一个通过 URL 来获取数据的简单方式,并且不会使整个页面刷新。这使得网页只更新一部分页面而不会打扰到用户。XMLHttpRequest 在 AJAX 中被大量使用。
> XMLHttpRequest 是一个 API,它为客户端提供了在客户端和服务器之间传输数据的功能。它提供了一个通过 URL 来获取数据的简单方式,并且不会使整个页面刷新。这使得网页只更新一部分页面而不会打扰到用户。XMLHttpRequest 在 AJAX 中被大量使用。
- 在使用 XMLHttpRequest 的 POST 方法时,浏览器会先发送 Header 再发送 Data。但并不是所有浏览器会这么做,例如火狐就不会。
- 而 GET 方法 Header 和 Data 会一起发送。