知方号

知方号

POST和GET的区别<请求方法post get区别>

POST和GET的区别

POST和GET的区别?POST和GET是什么?

POST和GET是HTTP请求的两种方式,都可实现将数据从浏览器向服务器发送带参数的请求。

HTTP请求底层协议都是TCP/IP,所以两者没有本质的区别。

HTTPHTTP是什么

HTTP:超文本传输协议。所有的WWW文件都必须遵守这个标准。

HTTP向服务器发送请求是TCP连接。HTTP服务器收到请求后向客户端返回一个状态行 比如“HTTP/1.1 200 OK”和

HTTP请求的组成

HTTP由四部分组成:

请求行(request line):用于说明请求类型、要访问的资源路径、HTTP版本号(GET /index.html HTTP/1.1)请求头部(header):用于说明服务器要使用的附加信息一个空行请求数据(body):任意添加的数据

 

      

【图1.1 HTTP请求结构 图片来自https://www.runoob.com/http/http-messages.html】

eg:

GET /books/?sex=man&name=Professional HTTP/1.1 Host: www.wrox.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6) Gecko/20050225 Firefox/1.0.1 Connection: Keep-Alive这里是空行

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

POST /index.html HTTP/1.1 请求方法 url 协议/版本号Host: localhost 主机地址User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2 发送请求的应用程序名称Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-cn,zh;q=0.5 通知服务端可以发送的语言Accept-Encoding: gzip, deflate 通知服务端可以发送的数据压缩格式Connection: keep-aliveReferer: http://localhost/Content-Length:25Content-Type:application/x-www-form-urlencoded请求空行 标志着请求头结束,请求正文(请求体)的开始username=aa&password=1234 GET方法

GET是获取的意思,顾名思义就是获取信息。

GET是默认的HTTP请求方法。

GET方法把参数通过key/value形式存放在URL里面,如果参数是英文数字原样显示,如果是中文或者其他字符加密(Base64)URL长度一般有限制所以GET方法的参数长度不能太长。由于参数显示再地址栏所以不安全,一般需要保密的请求不使用GET。

POST方法

POST是邮件的意思,顾名思义就像一封信一样将参数放在信封里面传输。它用于修改服务器上的数据,一般这些数据是应该保密的,就像信件一样,信的内容只能收信的人看见。例入当用户输入账号和密码登录时账号和密码作为参数通过HTTP请求传输到服务器,这时候肯定不能用GET方法将账号密码直接显示再URL上,这时候就应该用POST方法保证数据的保密性。

POST和GET的区别GET提交的数据放在URL中,POST则不会。这是最显而易见的差别。这点意味着GET更不安全(POST也不安全,因为HTTP是明文传输抓包就能获取数据内容,要想安全还得加密)GET回退浏览器无害,POST会再次提交请求(GET方法回退后浏览器再缓存中拿结果,POST每次都会创建新资源)GET提交的数据大小有限制(是因为浏览器对URL的长度有限制,GET本身没有限制),POST没有GET可以被保存为书签,POST不可以。这一点也能感受到。GET能被缓存,POST不能GET只允许ASCII字符,POST没有限制GET会保存再浏览器历史记录中,POST不会。这点也能感受到。

总之,两者之间没有本质区别,区别就在于数据存储的位置。各自有适用环境,根据需求选择合适的方法即可。

还有哪些HTTP请求方法

GET和POST是最常用的HTTP请求方式。还有其他的请求方式。我没用过其他的,我只说我知道的把。以后遇到了再补充。

PUT:HEADDELETE...

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。