Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET
Explanações sobre o que é URI, URL, URN e conferindo na prática algumas diferenças entre POST e GET com PHP e HTML. Também tem um teste que verifica algumas diferenças entre POST e GET, um teste simples dos limites de caracteres que alguns navegadores suportam na barra de endereços e um teste simples de velocidade das solicitações POST e GET.
[ Hits: 6.246 ]
Por: Buckminster em 30/04/2024
echo '<br>1 --------------------------------------------------------------------<br><br>'; // GET // Usando file_get_contents // URL para teste $urlG_FGC = 'https://www.vivaolinux.com.br/testarLogin.php'; // Mede o tempo inicial da requisição $tempoInicialG_FGC = hrtime(true); // Faz a requisição GET $respostaG_FGC = file_get_contents($urlG_FGC); // Mede o tempo final da requisição $tempoFinalG_FGC = hrtime(true); // Calcula o tempo decorrido: echo $variavel/1e+6; //nanosegundos para milisegundos //$tempoDecorridoG_FGC = round(($tempoFinalG_FGC - $tempoInicialG_FGC) * 1000, 2); $tempoDecorridoG_FGC = round($tempoFinalG_FGC - $tempoInicialG_FGC); // Exibe a resposta da requisição (para fins de depuração) echo "Resposta da requisição GET (file_get_contents):<br>"; //var_dump($respostaG_FGC); //echo $respostaG_FGC; // Exibe o tempo decorrido formatado com dois dígitos após o ponto //echo "Tempo decorrido: {$tempoDecorridoG_FGC} ms<br>"; echo "Tempo decorrido: " .number_format($tempoDecorridoG_FGC/1e+6, 2, '.', ''). " ms<br>"; echo '<br>2 --------------------------------------------------------------------<br><br>'; // GET Usando cURL // URL para teste $urlG_URL = 'https://www.vivaolinux.com.br/testarLogin.php'; // Inicializa o cURL $curlG_URL = curl_init(); // Define as opções do cURL curl_setopt_array($curlG_URL, array( CURLOPT_URL => $urlG_URL, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPGET => true, //CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_TIMEOUT => 30, // Tempo limite da requisição em segundos )); // Mede o tempo inicial da requisição $tempoInicialG_URL = hrtime(true); // Executa a requisição GET $respostaG_URL = curl_exec($curlG_URL); // Mede o tempo final da requisição $tempoFinalG_URL = hrtime(true); // Calcula o tempo decorrido: echo $variavel/1e+6; //nanosegundos para milisegundos //$tempoDecorridoG_URL = round(($tempoFinalG_URL - $tempoInicialG_URL) * 1000, 2); $tempoDecorridoG_URL = round($tempoFinalG_URL - $tempoInicialG_URL); // Verifica se houve algum erro na requisição if(curl_errno($curlG_URL)){ echo 'Erro ao enviar a requisição: ' . curl_error($curlG_URL); } else { // Exibe a resposta da requisição (para fins de depuração) echo "Resposta da requisição GET (cURL):<br>"; //var_dump($respostaG_URL); // Exibe o tempo decorrido formatado com dois dígitos após o ponto //echo "Tempo decorrido: {$tempoDecorridoG_URL} ms<br>"; echo "Tempo decorrido: ".number_format($tempoDecorridoG_URL/1e+6, 2, '.', ''). " ms<br>"; } // Fecha a conexão cURL curl_close($curlG_URL); echo '<br>3 --------------------------------------------------------------------<br><br>'; // POST com file_get_contents // URL para onde será feita a requisição POST $urlP_FGC = 'https://www.vivaolinux.com.br/testarLogin.php'; // Dados a serem enviados via POST $formLogin = filter_input(INPUT_POST, 'formLogin', FILTER_UNSAFE_RAW); $formSenha = filter_input(INPUT_POST, 'formSenha', FILTER_UNSAFE_RAW); $dadoP_FGC = array( 'formLogin' => $formLogin, 'formSenha' => $formSenha, ); // Configuração da requisição $opcoesP_FGC = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => http_build_query($dadoP_FGC), 'timeout' => 30, // Tempo limite de espera em segundos ), ); // Início da contagem de tempo $tempoInicialP_FGC = hrtime(true); // Realiza a requisição POST $respostaP_FGC = file_get_contents($urlP_FGC, false, stream_context_create($opcoesP_FGC)); // Fim da contagem de tempo $tempoFinalP_FGC = hrtime(true); // Calcula o tempo de requisição //$tempoDecorridoP_FGC = round(($tempoFinalP_FGC - $tempoInicialP_FGC) * 1000, 2); $tempoDecorridoP_FGC = round($tempoFinalP_FGC - $tempoInicialP_FGC); // Exibe a resposta da requisição (para fins de depuração) echo "Resposta da requisição POST (file_get_contents):<br>"; //var_dump($respostaP_FGC); if (array_key_exists("formLogin", $dadoP_FGC)) { echo "O elemento "; $v = var_dump($formLogin, true); echo $v; echo " está no array!<br>"; } // Exibe o tempo de requisição formatado com dois dígitos após o ponto //echo "Tempo decorrido: {$tempoDecorridoP_FGC} ms<br>"; echo "Tempo decorrido: ".number_format($tempoDecorridoP_FGC/1e+6, 2, '.', ''). " ms<br>"; echo '<br>4 --------------------------------------------------------------------<br><br>'; // POST cURL // URL para teste $urlP_URL = 'https://www.vivaolinux.com.br/testarLogin.php'; // Dados a serem enviados na requisição POST $formLogin = filter_input(INPUT_POST, 'formLogin', FILTER_UNSAFE_RAW); $formSenha = filter_input(INPUT_POST, 'formSenha', FILTER_UNSAFE_RAW); $dadoP_URL = array('formLogin' => $formLogin, 'formSenha' => $formSenha,); // Inicializa o cURL $curlP_URL = curl_init(); // Define as opções do cURL curl_setopt_array($curlP_URL, array( CURLOPT_URL => $urlP_URL, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query($dadoP_URL), //CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_TIMEOUT => 30, // Tempo limite da requisição em segundos )); // Mede o tempo inicial da requisição $tempoInicialP_URL = hrtime(true); // Executa a requisição POST $respostaP_URL = curl_exec($curlP_URL); // Mede o tempo final da requisição $tempoFinalP_URL = hrtime(true); // Calcula o tempo decorrido em milissegundos $tempoDecorridoP_URL = round($tempoFinalP_URL - $tempoInicialP_URL); // Verifica se houve algum erro na requisição if(curl_errno($curlP_URL)){ echo 'Erro ao enviar a requisição: ' . curl_error($curlP_URL); } else { // Exibe a resposta da requisição (para fins de depuração) echo "Resposta da requisição POST (cURL):<br>"; //var_dump($respostaP_URL); if (array_key_exists("formSenha", $dadoP_URL)) { echo "O elemento "; $v = var_export($formSenha, true); echo $v; echo " está no array!<br>"; } // Exibe o tempo decorrido //echo "Tempo decorrido: {$tempoDecorridoP_URL} ms<br>"; echo "Tempo decorrido: ".number_format($tempoDecorridoP_URL/1e+6, 2, '.', ''). " ms<br>"; } // Fecha a conexão cURL curl_close($curlP_URL); // GET e POST com file() // Função para medir o tempo decorrido function calcularTempo($tempoInicial) { $tempoFinal = hrtime(true); //return round(($tempoFinal - $tempoInicial) * 1000, 2); // Tempo em milissegundos return round($tempoFinal - $tempoInicial); } // URL $url = 'https://www.vivaolinux.com.br/testarLogin.php'; // Medição do tempo para requisição GET $tempoInicialGET = hrtime(true); $respostaGET = file($url); // Faz a requisição GET $tempoGET = calcularTempo($tempoInicialGET); // Medição do tempo para requisição POST $tempoInicialPOST = hrtime(true); $dadoPOST = array('parametro1' => 'valor1', 'parametro2' => 'valor2'); $opcoes = array( 'http' => array( 'Content-Type' => 'application/x-www-form-urlencoded ', 'method' => 'POST', 'header' => 'Content-Type: application/x-www-form-urlencoded', 'content' => http_build_query($dadoPOST) ) ); $contexto = stream_context_create($opcoes); $respostaPOST = file($url, false, $contexto); // Faz a requisição POST $tempoPOST = calcularTempo($tempoInicialPOST); echo '<br>5 --------------------------------------------------------------------<br><br>'; // Exibe a resposta da requisição (para fins de depuração) echo "Resposta da requisição GET (file):<br>"; //var_dump($respostaGET); //echo "Tempo decorrido: {$tempoGET} ms<br>"; echo "Tempo decorrido: ".number_format($tempoGET/1e+6, 2, '.', ''). " ms<br>"; echo '<br>6 --------------------------------------------------------------------<br><br>'; // Exibe a resposta da requisição (para fins de depuração) echo "Resposta da requisição POST (file):<br>"; //var_dump($respostaPOST); //echo "Tempo decorrido: {$tempoPOST} ms<br>"; echo "Tempo decorrido: ".number_format($tempoPOST/1e+6, 2, '.', ''). " ms<br>"; echo '<br>----------------------------------------------------------------------<br><br>';
Instalar e Configurar o Slackware Linux em 2025
Compilação e instalação do Vim e habilitando a copiar e colar com o mouse
Instalar Minecraft, League of Legends e Fortnite no Linux
Squid - Entendendo um pouco as configurações
Desenvolvendo um componente de calendário dinâmico em PHP
Instalação do MediaWiki em uma Project web do SourceForge
Ninguém planeja fracassar, mas muitos fracassam por não planejar
Criando um blog com o CakePHP 2.2.1
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Proteja seu Linux Mint com o Timeshift: Restaure o sistema mesmo que ele não inicie!
Instalando Google Chrome no Debian 13
Salvar estado da VM no virt-manager (1)
meus dois pen drives não são mais reconhecidos pelo meu PC apos tentar... (2)
Configuração/... de Apache Hop (1)
Alguém pode me recomendar um editor de textos? [RESOLVIDO] (6)