get 与 post的区别?application json 与form表单的区别?

大家好,我是IT修真院北京分院第20期的学员王野,一枚正直纯洁善良的程序员

今天给大家分享一下,修真院官网JS任务4,深度思考中的知识点——http请求方式的区别

一、背景介绍

get 和 post是HTTP中请求数据的方法;application json 与form表单是HTTP中传输文件的类型,所以要了解其中的区别,要先了解HTTP 协议格式 和 HTTP Header

二、知识剖析

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.1,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。

HTTP请求数据:


get 与 post的区别?application json 与form表单的区别?_第1张图片
请求数据

HTTP响应数据:


get 与 post的区别?application json 与form表单的区别?_第2张图片
相应数据

三、常见问题

get 与 post的区别?

1.GET请求的数据会附在URL之后,以?分割URL和传输数据,参数之间以&相连,

    POST把提交的数据则放置在是HTTP包的包体中。

2.GET的长度受限于url的长度,而url的长度限制是特定的浏览器和服务器设置的,理论上GET的长度可以无限长。

3.POST是没有大小限制的,HTTP协议规范也没有进行大小限制,起限制作用的是服务器的处理程序的处理能力

4.在ASP中,服务端获取GET请求参数用Request.QueryString,获取POST请求参数用Request.Form。

5.POST的安全性要比GET的安全性高

application json 与form表单的区别?

瀏覽器默認的提交方式就是表單。首先,Content-Type 被指定为 application/x-www-form-urlencoded,jQuery的Ajax请求默认方式,其次,数据以键值对形式?key1=value1&key2=value2的方式发送到服务器


get 与 post的区别?application json 与form表单的区别?_第3张图片
form形式

application/json用来告诉服务端消息主体是序列化后的 JSON 字符串。由于 JSON 规范的流行,除了低版本 IE 之外的各大浏览器都原生支持 JSON.stringify,服务端语言也都有处理 JSON 的函数,使用 JSON 不会遇上什么麻烦。angular默認的就是json格式。

JSON 格式支持比键值对复杂得多的结构化数据,可以提交层次非常深的数据。


get 与 post的区别?application json 与form表单的区别?_第4张图片
json形式

四、拓展思考

1、post和get的选择?

私密性的信息请求使用post。

查询信息和可以想要通过url分享的信息使用get。

2、application json 和form表单的选择·

json和表单可以根据具体的情况选择,也可以自己设置。


http中 get和post的区别


五、参考文献

ppt链接

视频链接

HTTP协议详解(真的很经典)

四种常见的 POST 提交数据方式 专题

七、更多讨论

如何手动设置数据的格式

大家可以在评论里讨论下哦

------------------------------------------------------------------------------------------------------------------------

你可能感兴趣的:(get 与 post的区别?application json 与form表单的区别?)