From 04a411658471fc3dd4aa64568d9b86e4b856f3c3 Mon Sep 17 00:00:00 2001 From: Jiaying Ren Date: Sat, 25 Jan 2014 13:17:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B=E5=AF=B9POST=E5=92=8CGET?= =?UTF-8?q?=E7=9A=84=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # 结构上的改进 原来的描述在未引入任何对POST和GET的解释的情况下,先上了两张对POST和GET的抓包图,这势必引起之前没有接触过HTTP协议的同学的困惑。 故将对HTTP POST和 GET的描述放在两张抓图之前,使得条理更加清晰。 # 排版上的调整 1. 将原先中英文句号混用的情况统一成使用中文句号 2. 将原文中 `body` 和 `Body` 混用的情况统一为使用小写版本 3. 将正文中的代码片段使用反斜线进行包裹,如 `EditPosts.aspx?name=test1&id=123456` --- ebook/03.1.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/ebook/03.1.md b/ebook/03.1.md index a327a398..dfdaee3a 100644 --- a/ebook/03.1.md +++ b/ebook/03.1.md @@ -85,7 +85,9 @@ HTTP协议是无状态的,同一个客户端的这次请求和上次请求是 //空行,用于分割请求头和消息体 //消息体,请求资源参数,例如POST传递的参数 -我们通过fiddler抓包可以看到如下请求信息 +HTTP协议定义了很多与服务器交互的请求方法,最基本的有4种,分别是GET,POST,PUT,DELETE。一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,删4个操作。我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 + +通过fiddler抓包可以看到如下请求信息: ![](images/3.1.http.png?raw=true) @@ -95,13 +97,12 @@ HTTP协议是无状态的,同一个客户端的这次请求和上次请求是 图3.5 fiddler抓取的POST信息 -**我们可以看到GET请求消息体为空,POST请求带有消息体**。 +我们看看GET和POST的区别: -HTTP协议定义了很多与服务器交互的请求方法,最基本的有4种,分别是GET,POST,PUT,DELETE. 一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,删4个操作。 我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息. -我们看看GET和POST的区别 -1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中. -2. GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制. -3. GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码。 +1. 我们可以看到GET请求消息体为空,POST请求带有消息体。 +2. GET提交的数据会放在URL之后,以`?`分割URL和传输数据,参数之间以`&`相连,如`EditPosts.aspx?name=test1&id=123456`。POST方法是把提交的数据放在HTTP包的body中。 +3. GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制。 +4. GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码。 ### HTTP响应包(服务器信息) 我们再来看看HTTP的response包,他的结构如下: