hyperskill - HTTP messages 영어 원문
HTTP 프로토콜은 메세징의 기초에 빌트되어 있는 "client-server" 아키텍쳐에 의존합니다.
HTTP 메세지는 웹에 있는 클라이언트와 서버 간의 데이터를 교환하는 방식입니다.
두 가지 유형의 메세지가 있습니다 : Request*(요청) 그리고 Response(응답)
request 는 클라이언트가 서버에서 수행하기를 원하는 운영을 의미하며,
response 는 들어온 request 에 대한 서버로부터의 응답입니다.
주로, 프로그래머들은 HTTP 메세지들을 생성하는 것에 대해서 어려워 할 필요가 없는데,
메세지는 브라우저, 어플리케이션, 웹 서버에 의해 생산되기 때문입니다.
The format of messages - 메세지의 형식
HTTP 프로토콜에서, 모든 메세지들은 텍스트 문자열들로 구성되어 있습니다.
request 와 response 둘 다 대충 같은 표준화 된 형식을 가지고 있습니다 :
Start line - 시작 부분
시작 부분은 다를 수 있습니다 :
request 에서, 요청의 유형(method) 를 가르키며, 어디로 이를 보내야 하는지 (target) 을 가르킵니다.
response 에서, 이는 상태 코드(status code) 를 담고 있으며, 연산에 대한 성공 여부를 결정합니다.
Headers - 헤더 부분
Header 는 메세지를 설명하며, 다양한 파라미터들을 전달합니다.
Body - 바디 부분
Body 는 메세지의 데이터가 위치한 곳 입니다.
start line (시작 부분) 과 header (헤더) 는 속성(attributes) 을 필요로 하므로,
다른 부분은 비어 있을 겁니다.
전체 형식은 초보자에게는 꽤 복잡할 수 있습니다만,
따라서 우리는 일반적인 원칙을 이해하고 위해서 오로지 가장 중요한 부분만 고려 할 겁니다.
The simplified HTTP interaction - HTTP 상호작용 단순화
여기 브라우저 클라이언트와 서버 간의 단순화 된 HTTP 상호작용이 있습니다.
클라이언트와 서버는 우리가 공부했던 형식으로 request 와 response 를 통해 상호작용합니다.
클라이언트 프로그램으로 브라우저 말고도 가능성이 있는 다른 유형의 프로그램이 있다는 것을 참고하세요.
심지어 당신의 HTTP 클라이언트를 작성하고, 서버들과 상호작용 할 수 있습니다.
필요한 것은 언제나 메세지 유형을 따르는 이러한 프로그램입니다.
Methods - 메서드
HTTP 프로토콜은 요청(request) 메서드들의 집합을 정의했느데,
이 메서드들은 주어진 리소스에 대해 원하는 행동이 무엇인지 지정해 놓은 것입니다.
이러한 메서드들이 명사가 될 수 있음에도 불구하고,
이러한 쿼리 메서드들은 가끔 HTTP 동사로서 취급되기도 합니다.
가장 흔하게 사용되는 쿼리 메서드들을 살펴 봅시다 :
GET
메서드는 오로지 서버로부터 데이터를 검색 할 때 사용됩니다.POST
메서드는 서버로 데이터를 전송 할 때 사용되곤 합니다.HEAD
메서드는GET
메서드와 동일한 방식으로 서버로부터 데이터를 요청하지만, response body 가 없습니다.
당신이 매번 링크를 클릭 할 때 마다,
당신은 기본적으로 이 페이지를 GET
하고 싶다고 브라우저와 소통하는 것 입니다.
당신이 선호하는 사이트에 로그인 하고 싶을 때,
당신은 이에 대한 접근 권한을 받기 위해서 login 과 password 를 POST
합니다.
Status codes - 상태 코드
HTTP를 통한 작업을 하는 컴퓨터 프로그램과 웹 페이지의 정상적인 작동을 위해,
게다가 페이지의 컨텐츠까지, 서버는 세 자리의 숫자 코드를 반환합니다.
이 숫자 코드는 요청에 대한 응답을 지정합니다.
이러한 숫자 코드의 도움 덕분에, 클라이언트는 또 다른 사이트로 리다이렉트 할 수 있으며,
페이지의 변화를 지정 할 수 있으며, 게다가 데이터 프로세싱에서의 에러도 감지 할 수 있습니다.
현재, 이러한 숫자 코드의 표준은 status code(상태 코드) 에 다섯 가지의 분류를 정의했습니다 :
Status Code | Description |
---|---|
1xx : Informational | "1" 로 시작하는 코드는 정보 코드라고 부릅니다. 이 코드는 클라이언트의 요청이 어떻게 처리되었는지 보고합니다. |
2xx : Success | 이 클래스의 메세지들은 클라이언트에 의해 요청된 액션이, 프로세싱을 위해 성공적으로 받아들여졌음을 알립니다. |
3xx : Redirection | 이는 요청을 오나료하기 위해 추가적인 액션을 취해야 함을 의미합니다. |
4xx : Client Error | 이는 클라이언트 측에서 에러를 보고합니다. |
5xx : Server Error | 이 코드는 서버의 잘못으로 인해 연산이 실패했음을 가르킵니다. |
예시로, 만약 당신이 웹사이트를 성공적으로 로드했으며, 당신이 받은 응답의 코드는 200
입니다.
당신은 브라우저의 개발 도구를 열고 네트워크 탭을 클릭해서 이를 확인 할 수 있습니다.
그리고 나서 웹 페이지를 새로고침 해 보면, 상태 코드들을 볼 수 있습니다.
개발자 도구를 여는 단축키 조합은 브라우저마다 다를 수 있습니다.
당신에게 예시를 주자면,
- Window or Linux :
Ctrl + Shift + I
orF12
- macOS :
Cmd + Opt + I
orCmd + Opt + J
당신이 존재하지 않는 페이지 주소를 입력했을 때,
브라우저에서 "404 Not Found" 메세지를 표시하는 상황을 경험 해 봤을 겁니다.
브라우저들은 에러 메세지들을 표시하여 유저들이 무언가 잘못 되었다는 것을 이해할 수 있도록 합니다.
유저들이 콘텐츠가 다운로드 될 때 까지 빈 페이지를 계속해서 보게 하는 것 대신에 이러한 페이지를 표시합니다.
Conclusion - 결론
우리가 여기서 방금논의한 주요한 지점들에 대해서 빛을 비춰 봅시다 :
- HTTP 메세지들은 두 가지 유형이 될 수 있습니다 : request 그리고 response
- 이러한 두 가지 메세지는 시작 부분, 헤더, 그리고 body 로 구성되어 있습니다.
request의 시작 부분은 메서드와 타겟을 포함하고 있으며, 반면에 response 는 상태 코드를 포함하고 있습니다. - request 메세지에서 흔하게 사용되는 메서드는
GET
,POST
그리고HEAD
입니다. - Status Code(상태 코드) 는 서버로부터의 응답을 가르키며, 세 개의 숫자로 이루어져 있습니다.
상태 코드는 5 개의 클래스가 될 수 있습니다 :
Informational(정보 제공), Success(성공), Redirection(리디렉션), Client Error, Server Error.
words to remember
relies : 의지하다
roughly : 대충, 거칠게
vary : 달라지다, 다르다, 바꾸다, 변주하다
desired : 원하는, 생각하다, 소망하다
'Hyperskill - 컴퓨터 CS 및 영어 독해 > Introduction to Docker' 카테고리의 다른 글
Introduction to logging - 로깅 기초 소개 (3) | 2024.07.20 |
---|---|
REST - REST 란 무엇인가 (0) | 2024.07.19 |
HTTP URL - HTTP 프로토콜 경로 (0) | 2024.07.18 |
MVC - MVC 패턴 (0) | 2024.07.16 |
Introduction to software architecture - 소프트웨어 아키텍쳐 기초 (0) | 2024.07.15 |