웹서비스에 한글 아이디를 허용하게 되면 난감해지는 HTTP적인 이유

그건 Basic Authentication 때문이다. 웹서비스에 한글 아이디를 허용하면 Basic Authentication을 적용하기 어려워진다. 뭐가 문제인가 HTTP의 Basic Authentication은 매우 단순한 인증 체계이다. 클라이언트가 사용자의 아이디와 비밀번호를 "아이디:비밀번호" 꼴로 만들어 base64 인코딩하여 전송하면, 서버가 확인 후 틀렸으면 401 Unauthorized를 돌려주고 맞았으면 요청을 적절히 처리한다. 보통 웹브라우저로 사이트에 들어가는데 팝업이 짠 뜨면서 로그인을 요구하면 대개 이 Basic Authentication이라고 … 웹서비스에 한글 아이디를 허용하게 되면 난감해지는 HTTP적인 이유 계속 읽기

"HTTP/1.1 200" 은 틀리고 "HTTP/1.1 200 " 은 맞는 이유

HTTP 응답은 항상 다음과 같은 Status-Line 으로 시작한다. HTTP/1.1 200 OK 왼쪽부터 순서대로 HTTP-Version, Status-Code, Reason-Phrase가 온다. 그런데 만약 응답을 해줘야 하는 HTTP 서버가, 적절한 이유구문을 결정하지 못해 Reason-Phrase 없이 응답을 보내려면 어떻게 해야 할까? 그냥 "HTTP/1.1 200" 로 보내면 될 것 같지만, 정답은 "HTTP/1.1 200 "이다. 끝에 공백문자를 하나 넣어줘야 한다. 이유가 뭘까? RFC … "HTTP/1.1 200" 은 틀리고 "HTTP/1.1 200 " 은 맞는 이유 계속 읽기

HTTP status code 실험

요즘 회사에서 HTTP 스터디중이다. HTTP/1.1의 다양한 Status Code들에 대해 공부한 뒤, 실제 웹브라우저가 Status Code에 대해 어떻게 대응하는지 궁금해졌다. 그래서 구글 크롬을 가지고서 테스트 해 보았다. 일단 status code를 원하는대로 만들어서 응답해주는 코드를 간단히 작성했다. header("HTTP/1.1 ".$_REQUEST['status']." ".$_REQUEST['reason']); if (isset($_REQUEST['body'])) { echo $_REQUEST['body']; } 예를 들어 http://npcode.com/test/http-resonse.php?status=201 이렇게 요청하면 201로 응답해준다. 이걸로 구글크롬을 테스트 해 … HTTP status code 실험 계속 읽기