개발 꿀팁/PHP

HTTP 204와 205 애플리케이션

Jammie 2022. 8. 19. 11:58
반응형

HTTP 204(no content)는 응답 실행이 성공했음을 나타내지만 데이터가 반환되지 않으며 브라우저는 새로고침이나 새 페이지로 안내하지 않습니다.
HTTP 205(reset content)는 응답 실행이 성공했음을 나타내며, 다음 입력에 편리하도록 페이지를 재설정합니다(Form양식).。

ajax 사용시 응답성공이나 실패만 알 수 있는 경우 HTTP 200 대신 상태코드 HTTP 204를 사용할 수 있습니다.여분의 데이터를 전송하다.

예: ajax는 아이디, 문장 id를 제출하고, 사용자가 그 문장에 접속한 것을 기록한다

  $(document).ready(function(){
    $.get("api.php", {name:'fdipzone',article_id:'100'});
  })
<?php
 
$name = $_GET['name'];
$article_id = $_GET['article_id'];
 
// do sth
 
header('HTTP/1.1 204 No Content');
 
?>

HTTP 상태 코드 헤더 출력:

/**
 * HTTP Protocol defined status codes
 * @param int $num
 */
function HTTPStatus($num) {
   
   static $http = array (
       100 => "HTTP/1.1 100 Continue",
       101 => "HTTP/1.1 101 Switching Protocols",
       200 => "HTTP/1.1 200 OK",
       201 => "HTTP/1.1 201 Created",
       202 => "HTTP/1.1 202 Accepted",
       203 => "HTTP/1.1 203 Non-Authoritative Information",
       204 => "HTTP/1.1 204 No Content",
       205 => "HTTP/1.1 205 Reset Content",
       206 => "HTTP/1.1 206 Partial Content",
       300 => "HTTP/1.1 300 Multiple Choices",
       301 => "HTTP/1.1 301 Moved Permanently",
       302 => "HTTP/1.1 302 Found",
       303 => "HTTP/1.1 303 See Other",
       304 => "HTTP/1.1 304 Not Modified",
       305 => "HTTP/1.1 305 Use Proxy",
       307 => "HTTP/1.1 307 Temporary Redirect",
       400 => "HTTP/1.1 400 Bad Request",
       401 => "HTTP/1.1 401 Unauthorized",
       402 => "HTTP/1.1 402 Payment Required",
       403 => "HTTP/1.1 403 Forbidden",
       404 => "HTTP/1.1 404 Not Found",
       405 => "HTTP/1.1 405 Method Not Allowed",
       406 => "HTTP/1.1 406 Not Acceptable",
       407 => "HTTP/1.1 407 Proxy Authentication Required",
       408 => "HTTP/1.1 408 Request Time-out",
       409 => "HTTP/1.1 409 Conflict",
       410 => "HTTP/1.1 410 Gone",
       411 => "HTTP/1.1 411 Length Required",
       412 => "HTTP/1.1 412 Precondition Failed",
       413 => "HTTP/1.1 413 Request Entity Too Large",
       414 => "HTTP/1.1 414 Request-URI Too Large",
       415 => "HTTP/1.1 415 Unsupported Media Type",
       416 => "HTTP/1.1 416 Requested range not satisfiable",
       417 => "HTTP/1.1 417 Expectation Failed",
       500 => "HTTP/1.1 500 Internal Server Error",
       501 => "HTTP/1.1 501 Not Implemented",
       502 => "HTTP/1.1 502 Bad Gateway",
       503 => "HTTP/1.1 503 Service Unavailable",
       504 => "HTTP/1.1 504 Gateway Time-out"        
   );
   
   header($http[$num]);
}

 

반응형