1.提交方式
HTTP协议是以ASCII码传输,建立在TCP/IP协议之上的应用层规范。规范把HTTP 请求分为三个部分:状态行、请求头、消息主体。POST请求发送的数据是放在消息主体中,这是遵循HTTP协议的规范格式,而GET是将发送的数据直接拼接在URL的后面,也就是在状态行中。很明显,POST方式比GET方式安全.
2.传递数据大小
get : get传递数据的大小因为受到浏览器地址栏的限制,所以一般在2k-8k,这要据浏览器而定,比如谷歌浏览器就是8k.
post : post传递数据的大小最小是2M,但理论上是无上限的.
3.应用范围
get : get一般用于获取/查询资源信息.多用于a标签的herf属性中,也常用于location.herf属性中.
post :post一般是用于更新数据信息.多用于表单提交.
4.安全性
get的安全性比post较差.
5.post可以传输数据
post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
当向服务器端发送一个post请求的时候,需要把数据传输的格式告诉服务器。服务器会根据格式进行相应的数据解析。
通过在请求头中指定content-type来设置传输的格式
1.application/x-www-form-urlencoded
以url分割的方式进行传递,例如
name=Tom&age=18
2. multipart/form-data
以FormData的 形式进行传递.常用在文件上传的时候使用
----------------------------413992393401167966871583 Content-Disposition: form-data; name="nickName" 小明 ----------------------------413992393401167966871583 Content-Disposition: form-data; name="age" 18 ----------------------------413992393401167966871583--
3. text/plain
是一个文本内容,根据自己和服务器的约定进行传输
4. application/json
{ "name": "Tom", "age": 18 }