get,post 区别,HTTP通信
2016-01-07 11:56
344 查看
GET & POST
GET
1.GET 的本质是"得"
2.从服务器拿数据,效率更高
3.从数学的角度来讲,GET 的结果是"幂等"的
4.GET请求能够被缓存
5.在 HTTP 协议定义中,没有对GET请求的数据大小限制,不过因为浏览器不同,一般限制在 2~8K 之间
6.所有的参数包装在URL中,并且服务器的访问日志会记录,不要传递敏感信息
参数格式? 在资源路径末尾添加?表示追加参数 变量名=变量值 每一个变量及值按照"变量名=变量值"方式设定,不能包含空格或者中文 等特殊符号
& 多个参数使用&连接
POST
1.POST 的本质是"给"
2.向服务器发送数据,也可以获得服务器处理之后的结果,效率不如GET
3.POST请求不能被缓存,post再次提交数据,页面会有提示:是否发送数据.....
POST提交数据比较大,大小靠服务器的设定值限制,PHP通常限定 2M
URL中,只有资源路径,但不包含参数,服务器日志不会记录参数,相对更安全
参数被包装成二进制的数据体,格式与GET基本一致,只是不包含?
所有设计用户隐私的数据(密码,银行卡号)一定记住使用POST方式传递
-------------------------------------------------------------------------------------
HTTP通信过程 - 请求
nHTTP协议规定:1个完整的由客户端发给服务器的HTTP请求中包含以下内容
请求行:包含了请求方法、请求资源路径、HTTP协议版本
GET /MJServer/resources/images/1.jpg HTTP/1.1
请求头:包含了对客户端的环境描述、客户端请求的主机地址等信息
Host: 192.168.1.105:8080 // 客户端想访问的服务器主机地址
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9) Firefox/30.0
// 客户端的类型,客户端的软件环境
Accept: text/html, */* // 客户端所能接收的数据类型
Accept-Language: zh-cn // 客户端的语言环境
Accept-Encoding: gzip // 客户端支持的数据压缩格式
p请求体:客户端发给服务器的具体数据,比如文件数据
===========
HTTP通信过程 - 响应
n客户端向服务器发送请求,服务器应当做出响应,即返回数据给客户端
nHTTP协议规定:1个完整的HTTP响应中包含以下内容
p状态行:包含了HTTP协议版本、状态码、状态英文名称
HTTP/1.1 200 OK
p响应头:包含了对服务器的描述、对返回数据的描述
Server: Apache-Coyote/1.1 // 服务器的类型
Content-Type: image/jpeg // 返回数据的类型
Content-Length: 56811 // 返回数据的长度
Date: Mon, 23 Jun 2014 12:54:52 GMT // 响应的时间
p实体内容:服务器返回给客户端的具体数据,比如文件数据
------------------------------------------------------------------------------------------
200(状态码) OK
2xx成功
4xx 客户端的错误
5xx 服务器端的错误
------------------------------------------------------------------------------------------
GET
1.GET 的本质是"得"
2.从服务器拿数据,效率更高
3.从数学的角度来讲,GET 的结果是"幂等"的
4.GET请求能够被缓存
5.在 HTTP 协议定义中,没有对GET请求的数据大小限制,不过因为浏览器不同,一般限制在 2~8K 之间
6.所有的参数包装在URL中,并且服务器的访问日志会记录,不要传递敏感信息
参数格式? 在资源路径末尾添加?表示追加参数 变量名=变量值 每一个变量及值按照"变量名=变量值"方式设定,不能包含空格或者中文 等特殊符号
& 多个参数使用&连接
POST
1.POST 的本质是"给"
2.向服务器发送数据,也可以获得服务器处理之后的结果,效率不如GET
3.POST请求不能被缓存,post再次提交数据,页面会有提示:是否发送数据.....
POST提交数据比较大,大小靠服务器的设定值限制,PHP通常限定 2M
URL中,只有资源路径,但不包含参数,服务器日志不会记录参数,相对更安全
参数被包装成二进制的数据体,格式与GET基本一致,只是不包含?
所有设计用户隐私的数据(密码,银行卡号)一定记住使用POST方式传递
-------------------------------------------------------------------------------------
HTTP通信过程 - 请求
nHTTP协议规定:1个完整的由客户端发给服务器的HTTP请求中包含以下内容
请求行:包含了请求方法、请求资源路径、HTTP协议版本
GET /MJServer/resources/images/1.jpg HTTP/1.1
请求头:包含了对客户端的环境描述、客户端请求的主机地址等信息
Host: 192.168.1.105:8080 // 客户端想访问的服务器主机地址
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9) Firefox/30.0
// 客户端的类型,客户端的软件环境
Accept: text/html, */* // 客户端所能接收的数据类型
Accept-Language: zh-cn // 客户端的语言环境
Accept-Encoding: gzip // 客户端支持的数据压缩格式
p请求体:客户端发给服务器的具体数据,比如文件数据
===========
HTTP通信过程 - 响应
n客户端向服务器发送请求,服务器应当做出响应,即返回数据给客户端
nHTTP协议规定:1个完整的HTTP响应中包含以下内容
p状态行:包含了HTTP协议版本、状态码、状态英文名称
HTTP/1.1 200 OK
p响应头:包含了对服务器的描述、对返回数据的描述
Server: Apache-Coyote/1.1 // 服务器的类型
Content-Type: image/jpeg // 返回数据的类型
Content-Length: 56811 // 返回数据的长度
Date: Mon, 23 Jun 2014 12:54:52 GMT // 响应的时间
p实体内容:服务器返回给客户端的具体数据,比如文件数据
------------------------------------------------------------------------------------------
200(状态码) OK
2xx成功
4xx 客户端的错误
5xx 服务器端的错误
------------------------------------------------------------------------------------------
相关文章推荐
- QIODevice (Qt中所有 I/O devices 的基类,QFile,QBuffer,QTcpSocket等)
- python操作网络图片
- Linux tcpdump命令详解
- 一个定期翻译国外Android优质的技术、开源库、软件架构设计、测试等文章的开源项目 http://www.devtf.cn
- 轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求
- 白话网络技术点
- 友善之臂开发板启动脚本配置以及fa-network-service后台服务对网络的配置
- 邮件开发:网络和主机地址
- 抓取Android平台数据包之tcpdump 工具的使用
- VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT
- QTcpSocket 及 TCP粘包分析
- Caffe学习系列(18): 绘制网络模型
- nginx httpgzip模块
- 客户端与多服务端的TCP连接状态问题
- Httpclient远程调用WebService示例(Eclipse+httpclient)
- 图解HTTPS
- WinPcap编程之HTTP协议还原
- iOS将网络音频文件写入本地的方法
- 关于使用QTcpSocket的一些总结
- 解决github unable to access 'https://github.com/...: Failed to connect to github.com port 443