HTTP 용어
1) URL 및 URI
URI (Uniform Resource Locator)은 웹에서 리소스 (HTML 문서 및 해당 자산)를 고유하게 식별하는 데 사용된다.
한편, URL (Uniform Resource Locator)는 자원의 위치를 나타낸다. URI가 URL보다 더 포괄적인 개념이다.
URL의 구조: protocol : // hostname : port / path-and-file-name
a) 프로토콜(Protocol): 클라이언트와 서버에서 사용하는 응용프로그램 레벨의 프로토콜 (예 : HTTP, FTP 및 텔넷).
b) 호스트 이름(Hostname): 서버의 DNS 도메인 이름 (예 : www.xxxx.com) 또는 IP 주소 (예 : 192.158.15.20).
c) 포트(Port): 서버가 클라이언트로부터 들어오는 요청을 수신하는 TCP 포트 번호입니다.
d) 경로 및 파일 이름(URI, Path and File Name): 서버 문서의 베이스 디렉토리 아래에서 요청된 자원의 이름 및 위치를 의미한다. 예를 들어 URL http://www.xxxx.com/guide/index에서 통신 프로토콜은 HTTP이고 호스트 이름은 www.xxxx.com이다. 포트 번호는 URL에 지정되지 않았지만 HTTP의 경우 기본적으로 TCP 포트 80을 사용한다.
한편, URI는 식별자를 포함한 http://www.xxxx.com/guide/index?id=13이다.
이 부분의 경우 원래 참고했던 문서가 잘못된 것으로 생각되어 내용을 수정했다.
URL과 URI에 대해 좀 더 자세한 설명은 링크를 통해 살펴보자.
2) HTTP 메소드(HTTP methods)
모든 요청 메시지에는 요청의 목적을 서버에 알려주는 메소드(HTTP 동사)가 있다.
a) GET : 서버에서 웹 리소스를 가져 오는 데 사용되는 메소드이다. GET 요청 중에 웹 응용 프로그램의 상태는 변경되지 않습니다 (예 : GET 요청을 기반으로 새 사용자 계정을 생성하지 않음). 따라서 GET 요청은 일반적으로 "안전한"것으로 간주된다.
b) POST : 웹 서버에 데이터를 게시/전송하는 데 사용되는 요청이다. 그 결과로 응용 프로그램의 상태가 변경된다. 예컨대, 양식에 사용자 정보를 입력하고 양식에 포함 된 데이터를 서버로 전송하여 웹 사이트에 가입하는 것이 이에 해당된다. 또한, POST 요청으로 인해 항상 새 HTML 페이지가 클라이언트로 전송되는 것은 아니다. 대신 클라이언트는 응답 코드를 사용하여 응용 프로그램에서 작업이 성공했는지 확인한다.
c) PUT : 서버에 데이터 저장을 요청하는 데 사용되는 메소드이다.
d) DELETE : 서버에 데이터 삭제를 요청하는 데 사용되는 메소드이다.
3) HTTP 응답 코드(HTTP Response Code)
서버는 응답 코드를 사용하여 수신중인 요청에 대해 어떤 일이 발생했는지 클라이언트에 알린다.
상태 코드(Status Code)는 세 자리 숫자로 이루어져있다.
Status Code
1xx (정보) : 요청이 수신되었으며, 서버가 프로세스를 계속하고 있다.
2xx (성공) : 요청이 성공적으로 받아들여졌다.
3xx (리디렉션) : 요청을 완료하기 위해선 추가 조치가 취해져야 한다.
4xx (클라이언트 오류) : 요청에 잘못된 구문이 포함되어 있거나 이해할 수 없을 때 반환되는 코드, 요청이 성공적으로 수신되면 일반적으로 서버에서 200을 보낸다.
참고
sasi-kala.com/blog/rails-internals-series-1
medium.com/maverick-labs/a-quick-overview-of-http-methods-51098b1300bd
'CS > 네트워크' 카테고리의 다른 글
[네트워크] HTTP의 이해2: HTTP Request-Response Messages (0) | 2021.02.06 |
---|---|
[네트워크] HTTP의 이해1: Client-Server Model, HTTP Protocol (0) | 2021.02.06 |
[네트워크] TCP/IP (0) | 2021.02.06 |
[네트워크] URL의 이해 - protocol, host, port, path, query (0) | 2021.01.29 |