zoukankan      html  css  js  c++  java
  • php 基础知识 post 和get 两种传输方式的区别

    1.post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)

    2.post发送的数据量更大(get有url长度限制)

    3.post能发送更多的数据类型(get只能发送ASCII字符)

    4.post比get慢

    5.Post是向服务器提交数据的一种请求,get是向服务器发索取数据的一种请求。

     6.get会将数据缓存起来,而post不会

     post请求的过程:

      1.浏览器请求tcp连接(第一次握手)

      2.服务器答应进行tcp连接(第二次握手)

      3.浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)

      4.服务器返回100 continue响应

      5.浏览器开始发送数据

      6.服务器返回200 ok响应

      get请求的过程

        1.浏览器请求tcp连接(第一次握手)

      2.服务器答应进行tcp连接(第二次握手)

      3.浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)

      4.服务器返回200 ok响应。

    get表达的是一种幂等的,只读的,纯粹的操作,即它除了返回结果不应该会产生其它副作用(如写数据库),因此绝大部分get请求(通常超过90%)都直接被CDN缓存了,这能大大减少web服务器的负担。

    而post所表达的语义是非幂等的,有副作用的操作,所以必须交由web服务器处理。

    把所有get请求换成post,意味着主干网络上的所有CDN都废掉了,web服务器要处理的请求数量将成百上千倍地增加,显然这不是一个聪明的做法!
  • 相关阅读:
    C#多线程编程实战1.5检测线程状态
    C#多线程编程实战1.4终止线程
    C#多线程编程实战1.3等待线程
    C#多线程编程实战1.2暂停线程(休眠)
    C#多线程编程实战1.1创建线程
    C#中base的作用
    C#继承
    C#中return的两个作用
    Windows下完全卸载node.js并安装node.js的多版本管理工具nvm-windows
    执行gulp build报错
  • 原文地址:https://www.cnblogs.com/zhanghanwen16/p/8515235.html
Copyright © 2011-2022 走看看