TIL # 2021.12.23

kdobro_dev·2021년 12월 23일
0

TIL (Today I Learned)

목록 보기
26/56
post-thumbnail

HTTP # 네트워크

📝오늘 배운 내용

URL과 URI에 대해 알아보자.

URL

URL은 네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나타낸다. URL은 scheme, hosts, url-path로 구분할 수 있다.

URI

URI는 일반적으로 URL의 기본 요소인 scheme, hosts, url-path에 더해 query, bookmark를 포함한다. query는 웹 서버에 보내는 추가적인 질문이다. http://www.google.com:80/search?q=JavaScript 를 브라우저의 검색창에 입력하면 구글에서 JavaScript를 검색한 결과가 나타난다.

그래서 브라우저의 검색창을 클릭하면 나타나는 주소는 URI이다. URI는 URL을 포함하는 상위개념이다.
URL은 URI다는 맞는 말이지만, URI는 URL이다는 틀린 말이다.

부분명칭설명
file://, http://, https://scheme통신 프로토콜
127.0.0.1, www.google.comhosts웹 페이지, 이미지, 동영상 등의 파일이 위치한 웹 서버, 도메인 또는 IP
:80, :443, :3000port웹 서버에 접속하기 위한 통로
/search, /Users/username/Desktopurl-path웹 서버의 루트 디렉토리로부터 웹 페이지, 이미지, 동영상 등의 파일이 위치까지의 경로
q=JavaScriptquery웹 서버에 전달하는 추가 질문

HTTP 메시지

HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식이다. 메세지 타입은 두 가지가 있다.
요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나네끔 하는 메시지이고, 응답(response)은 요청에 대한 서버의 답변이다.

HTTP 요청 메서드

HTTP는 요청 메서드는 주어진 리소스에 수행하길 원하는 행동을 나타낸다. 각각의 메서드는 서로 다른 의미를 구현하고 있지만, 일부 기능은 메서드 집합 간에 서로 공유하기도 한다.

주요 메소드 5가지

  • GET - 리소스 조회(조회)
  • POST - 요청 데이터 처리(추가)
  • PUT - 리소스를 대체, 해당 리소스가 없으면 생성(갱신)
  • PATCH - 리소스를 일부만 변경(갱신)
  • DELETE - 리소스 삭제(삭제)

기타 메소드 4가지

  • HEAD - GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환
  • OPTIONS - 대상 리소스에 대한 통신 가능 옵션을 설명
  • CONNECT - 대상 자원으로 식별되는 서버에 대한 터널을 설정
  • TRACE - 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행

HTTP 요청과 응답의 구조는 서로 닮았으며, 그 구조는 다음과 같다.

시작 줄(start-line)에는 실행되어야 할 요청, 또은 요청 수행에 대한 성공 또는 실패가 기록되어 있다. 이 줄은 항상 한 줄로 끝난다.
옵션으로 HTTP 헤더 세트가 들어간다. 여기에는 요청에 대한 설명, 혹은 메시지 본문에 대한 설명이 들어간다.
요청에 대한 모든 메타 정보가 전송되었음을 알리는 빈 줄(blank line)이 삽입된다.
요청과 관련된 내용(HTML 폼 콘텐츠 등)이 옵션으로 들어가거나, 응답과 관련된 문서(document)가 들어간다. 본문의 존재 유무 및 크기는 첫 줄과 HTTP 헤더에 명시된다.
HTTP 메시지의 시작 줄과 HTTP 헤더를 묶어서 요청 헤드(head)라고 부르며, 이와 반대로 HTTP 메시지의 페이로드는 본문(body)이라고 한다.

HTTP 응답 메서드

HTTP 응답의 시작 줄은 상태줄이라고 불린다.

  • 프로토콜 버전: HTTP/1.1
  • 상태 코드: 요청의 성공 여부를 나타낸다. 200, 404 혹은 302
  • 상태 텍스트: 짧고 간결하게 상태 코드에 대한 설명을 글로 나타내어 사람들이 HTTP 메시지를 이해할 때 도움이 된다.

응답에 들어가는 HTTP 헤더는 다른 헤더와 동일한 구조를 따른다. 대소문자를 구분하지 않는 문자열 다음에 콜론(':')이 오며, 그 뒤에 오는 값은 구조가 헤더에 따라 달라진다. 헤더는 값을 포함해 전체를 한 줄로 표시한다.

다양한 종류의 응답 헤더가 있는데, 이들은 다음과 같이 몇몇 그룹으로 나눌 수 있다.

  • General 헤더: Via와 같은 헤더는 메시지 전체에 적용된다.
  • Response 헤더: Vary와 Accept-Ranges와 같은 헤더는 상태 줄에 미처 들어가지 못했던 서버에 대한 추가 정보를 제공한다.
  • Entity 헤더: Content-Length와 같은 헤더는 요청 본문에 적용됩니다. 당연히 요청 내에 본문이 없는 경우 entity 헤더는 전송되지 않는다.
profile
do your best at any moment

0개의 댓글