[TIL] HTTP : The Definitive Guide "p65 ~ p67"

시윤·2024년 2월 24일
0

[TIL] Two Pages Per Day

목록 보기
27/109
post-thumbnail

Chapter 3. HTTP Messages

(해석 또는 이해가 잘못된 부분이 있다면 댓글로 편하게 알려주세요.)


❤️ 원문 번역 ❤️

Status Codes

HTTP status codes are classified into five broad categories, as shown earlier in Table 3-2. This section summarizes the HTTP status codes for each of the five classes.

  • HTTP 상태 코드는 앞서 Table 3-2에서 본 것처럼 5가지의 카테고리로 광범위하게 나누어집니다.

  • 이번 섹션에서는 다섯 가지 분류 각각의 HTTP 상태 코드를 요약합니다.

The status codes provide an easy way for clients to understand the results of their transactions. In this section, we also list example reason phrases, though there is no real guidance on the exact text for reason phrases. We include the recommended reason phrases from the HTTP/1.1 specification.

  • 상태 코드는 클라이언트가 트랜잭션의 결과를 이해하기 쉽게 만듭니다.

  • 이번 섹션에서는 사유 구절의 예시 또한 살펴볼 겁니다. 다만 사유 구절에는 실제 가이드라인이 존재하지 않습니다.

  • 이 책은 HTTP/1.1의 명세에서 몇 가지 추천되는 사유 구절을 포함합니다.


400-499 : Client Error Status Codes

Sometimes a client sends something that a server just can’t handle, such as a badly formed request message or, most often, a request for a URL that does not exist.

  • 때때로 클라이언트는 서버가 처리할 수 없는 잘못된 요청 메시지나 존재하지 않는 URL에 대한 요청을 보내기도 합니다.

We’ve all seen the infamous 404 Not Found error code while browsing—this is just the server telling us that we have requested a resource about which it knows nothing.

  • 우리는 브라우저를 사용하며 흔히 404 Not Found 오류 코드를 봅니다.

  • 이것은 클라이언트가 알 수 없는 리소스를 요청했음을 서버가 알려주는 것에 불과합니다.

Many of the client errors are dealt with by your browser, without it ever bothering you. A few, like 404, might still pass through. Table 3-9 shows the various client error status codes.

  • 클라이언트 오류의 브라우저에 의해 처리되며 유저를 귀찮게 하지 않습니다.

  • 404와 같은 일부 코드는 여전히 통과할 수도 있습니다.

  • Table 3-9는 다양한 클라이언트 오류 상태 코드를 나타냅니다.


500-599 : Server Error Status Codes

Sometimes a client sends a valid request, but the server itself has an error. This could be a client running into a limitation of the server or an error in one of the server’s subcomponents, such as a gateway resource.

  • 클라이언트가 올바른 요청을 보내더라도 서버에 오류가 발생할 때가 있습니다.

  • 클라이언트가 서버의 제한에 부딪히거나 게이트웨이 리소스와 같으나 서버의 구성 요소 중 하나에 오류가 있을 수 있습니다.

Proxies often run into problems when trying to talk to servers on a client’s behalf. Proxies issue 5XX server error status codes to describe the problem (Chapter 6 covers this in detail). Table 3-10 lists the defined server error status codes.

  • 프록시는 종종 클라이언트를 대신하여 서버와 통신을 시도할 때 문제가 발생합니다.

  • 이때 프록시는 5XX 서버 오류 상태 코드를 발생시켜 문제 상황을 나타냅니다. (Chapter 6에서 자세히 다룹니다)

  • Table 3-10은 정의되어 있는 서버 오류 상태 코드입니다.


🧡 요약 정리 🧡

400-499 : Client Error Status Codes

[1] 400 Bad Request

  • 클라이언트가 잘못된 요청을 보냈음을 알려주는 상태 코드

[2] 401 Unauthorized

  • 리소스를 얻기 위해 클라이언트에게 인증을 요구하는 상태 코드
  • 인증을 요청하는 적절한 헤더와 함께 반환

[3] 403 Forbidden

  • 서버가 요청을 거절했음을 나타내는 상태 코드
  • 요청 거절 사유를 나타내기 위해 엔티티 본문을 포함할 수도 있다
    (그러나 일반적으로는 서버가 거절 사유를 드러내고 싶지 않을 때 사용)

[4] 404 Not Found

  • 서버가 요청받은 URL을 찾을 수 없음을 나타내는 상태 코드
  • 클라이언트 애플리케이션이 유저에게 표시하기 위한 엔티티가 포함될 수도 있다

[5] 405 Method Not Allowed

  • 요청 URL에 대해 지원되지 않는 메소드를 포함한 요청임을 나타내는 상태 코드
  • 허용되는 메소드를 알려주는 Allow 헤더가 응답에 포함되어야 한다

[6] 408 Request Timeout

  • 클라이언트의 요청을 완료하는 시간이 오래 걸릴 때 전송하는 상태 코드
  • 서버는 상태 코드를 전송한 후 연결 종료
  • 서버의 시간 초과 기준은 서버마다 다르다

500-599 : Server Error Status Codes

[1] 500 Internal Server Error

  • 서버가 요청의 처리를 방해하는 오류를 마주쳤을 때 사용되는 상태 코드

[2] 501 Not Implemented

  • 클라이언트가 서버의 능력을 벗어난 요청을 전송했을 때 사용되는 상태 코드

[3] 502 Bad Gateway

  • 프록시나 게이트웨이로 사용되는 서버가 요청/응답 체인의 다음 연결(link)에서 신뢰할 수 없는 응답을 받았을 때 사용되는 상태 코드

💛 감상 💛

  • 상태 코드 자체에 대해서도 많이 배웠지만 상태 코드를 통해서 클라이언트나 서버에서 발생할 수 있는 오류의 종류에 대해서도 알 수 있었다. 예를 들면, 클라이언트가 올바른 메소드를 포함한 요청을 보내더라도 인증이 제대로 이루어지지 않거나 서버가 요구하는 헤더를 포함하지 않으면 클라이언트 오류가 발생할 수 있다는 것 말이다. 최근에 크롤링이 제대로 되지 않았던 게 하나가 있었는데 이 글을 읽자마자 놓치고 있던 것이 하나가 생각났다. 다음에 크롤링을 시도할 때는 헤더를 꼼꼼하게 살펴봐야 할 것 같다.

+) 헤더 문제가 맞았다. 필요한 헤더를 찾아서 크롤링에 성공했다.

profile
맑은 눈의 다람쥐

0개의 댓글

관련 채용 정보