zoukankan      html  css  js  c++  java
  • http访问中GET和POST的原理解析

    1.HTTP有几种请求方法:

      在HTTP1.1中总共定义了8种方法:

      在HTTP1.0中,定义了三种请求方法:GET,POST和HEAD方法。

      在HTTP1.1中,新增了五种请求方法:OPTINOS,PUT,DELETE,TRACE和CONNECT方法。

      但我们常用的就是get和post方法

    2.GET和POST两种请求方法都有哪些区别?

      1.get的传递参数是放在url中的,而post的请求方式是放在request body中的,所以post比get更安全。

      2.get传递的参数有大小限制,在2k以下,post参数在2G以下。

      3.get请求只能进行url编码( application/x-www-form-urlencoded),而post支持多种编码格式

      4.get请求会被浏览器主动缓存,而post不会,除非手动设置。

    3.GET请求有request body吗,如果有的话,可以像post一样放在里面吗?

      因为GET和POST都是基于TCP/IP的底层通信协议,所以在技术上get也是可以加入request body的,但是由于上层的HTTP协议的不同,导致服务器不一定能够解析到request body

    4.GET请求的参数写法是固定的吗?

      在约定中我们是将参数写在?后面,使用&分割,但是也可以自己定义,但是需要服务器端进行相应的解析处理。

    5.POST比GET方法更加安全,这种说法对吗?

      不对,因为HTTP在网络上都是明文传输的,所以并不完全安全,如果要安全传输,只有加密,也就是使用HTTPS。

    6.GET和POST请求发送的数据包有什么不同?

      GET请求时产生一个TCP数据包,POST请求时产生两个TCP数据包。

      GET:浏览器会把http header和data一并发送过去,服务器返回200(返回数据)

      POST:浏览器先发送header,服务器响应100 connect,浏览器再发送data,服务器响应200 OK(返回数据)

      

  • 相关阅读:
    [java]转:String Date Calendar之间的转换
    ExtJs在页面上window再调用Window的事件处理
    java oracle clob string 大字符串存储【转】
    解决linux系统启动之:unexpected inconsistency:RUN fsck
    线程封闭之栈封闭和ThreadLocal
    Java线程状态和关闭线程的正确姿势
    指令重排序和内存屏障
    浅谈Java内存模型以及交互
    Redis分布式锁的一点小理解
    使用原生Ajax进行用户名重复的检验
  • 原文地址:https://www.cnblogs.com/wk-missQ1/p/15215632.html
Copyright © 2011-2022 走看看