HTTP / HTTPS / 요청 및 응답 코드

posinity·2023년 5월 4일
0

CS

목록 보기
2/3

정의

HyperText Transfer Protocol의 약자로, 문서를 전송하기 위한 프로토콜을 뜻한다
(프로토콜 : 통신 규약. 데이터를 주고 받는 방식에 대한 규칙)

구조

요청(Request)와 응답(Response)로 구성되어 있고, 클라이언트가 요청을 하면 서버가 응답을 하는 구조로 되어 있다. HTTP는 클라이언트가 서버에 정보를 요청하면 응답 코드와 내용을 전송하고 클라이언트와 연결을 종료한다. (비연결성)

요청

namu.wiki의 index.html을 보여 달라는 요청이다.

GET /index.html HTTP/1.1  -  헤더
Host: namu.wiki  -  호스트
- 공백 -

HTTP Method

GET 클라이언트가 서버에게 URL에 해당하는 자료의 전송을 요청한다.

HEAD GET 요청으로 반환될 데이터 중 헤더 부분에 해당하는 데이터만 요청한다.

POST 서버에 데이터를 전송하는 요청. 예를 들어, 게시판에 글을 쓸 때 클라이언트의 문서가 서버로 전송되어야 한다.

PATCH 클라이언트가 서버에게 지정한 URL의 데이터를 부분적으로 수정할 것을 요청한다.

PUT 클라이언트가 데이터를 수정하거나 새로 추가하도록 요청할 때 사용한다.

DELETE 클라이언트가 서버에게 지정한 URL의 정보를 제거할 것을 요청한다.

TRACE 클라이언트가 서버에게 송신한 요청의 내용을 반환해 줄 것을 요청한다. 클라이언트로부터 수신한 요청을 응답에 포함시켜서 전달한다(디버깅용)

CONNECT 클라이언트가 특정 종류의 프록시 서버에게 연결을 요청한다.

OPTIONS 해당 URL에서 지원하는 요청 메세지의 목록을 요청한다. 서버에서 특정 데이터가 어떤 Method를 지원하는지 알아볼 때 사용

응답

요청을 받은 서버는 다음과 같이 응답한다.

HTTP/1.1 200 OK
<헤더>

<HTML>
    <HEAD>
        <TITLE>Hello!</TITLE>
    </HEAD>

    <BODY>
        <p>World!</p>
    </BODY>
</HTML>

"HTTP/1.1"은 HTTP의 버전이며, "200 OK"는 자료 전송이 성공했다는 의미이다. 헤더 부분엔 서버 정보와 요청 받은 시각 등이 전송되고, 그 밑에 응답 본문이 전송된다. 일반적인 웹 문서를 요청했을 경우에는 로 시작하는 웹 문서가 전송된다.

응답 코드

1XX - 정보 응답

· 100 Continue : 현재 요청이 진행중이며 문제 없다는 것을 의미합니다.

2XX - 성공 응답

· 200 OK : 요청이 성공적으로 완료되었음을 의미합니다.

· 201 Created : 요청이 성공적으로 완료되었고 새로운 리소스가 생성되었음을 의미합니다. 보통 POST아니면 PUT 요청 뒤에 따라옵니다.

3XX - 리다이렉션 메시지

· 300 Multiple Choice : 요청에 대해 하나 이상의 응답이 가능함을 의미합니다.

· 301 Moved Permanently : 요청한 리소스의 URI가 변경되었음을 의미합니다.

4XX - 클라이언트 에러 응답

· 400 Bad Request : 잘못된 문법으로 인해 서버가 요청을 이해하지 못했음을 의미합니다.

· 401 Unauthorized : 요청을 보낸 클라이언트가 인증되지 않았음을 의미합니다.

· 403 Forbidden : 요청을 보낸 클라이언트가 리소스에 접근할 권리가 없음을 의미합니다.

· 404 Not Found : 서버가 요청받은 리소스를 찾을 수 없음을 의미합니다.

· 408 Request Timeout : 요청 중 시간이 초과되었음을 의미합니다.

5XX - 서버 에러 응답

· 500 Internal Server Error : 서버에 문제가 있지만 서버가 해당 문제를 처리할 줄 모름을 의미합니다.

· 502 Bad Gateway : 서버가 게이트웨이로부터 잘못된 응답을 받았음을 의미합니다.

· 503 Service Temporarily Unavailable : 일시적으로 서버를 이용할 수 없음을 의미합니다. 보통 유지보수를 위해 서버를 잠시 중단시켰거나 과부하로 인한 다운이 원인입니다.

· 504 Gateway Timeout : 서버가 게이트웨이 역할을 하고 있으며 다른 서버로부터 적시에 응답을 받지 못했음을 의미합니다.

HTTPS

TLS를 통한 보안이 적용된 버전으로, 기본 포트는 80번이 아닌 443번을 쓴다.
HTTPS로 연결하면 전송 내용이 암호화되어 전달된다. HTTPS로 사용되지 않았을 경우, 비밀번호나 신용카드 번호 등의 정보가 도용 될 수 있다. 한국의 경우, 인터넷 결제나 인터넷 뱅킹 등의 개인정보 입력이 필요한 사이트에서는 법적으로 반드시 HTTPS를 사용해야 한다.

출처

https://tibetsandfox.tistory.com/18
https://namu.wiki/w/TLS?from=HTTPS#s-1.2

profile
문제를 해결하고 가치를 제공합니다

0개의 댓글