HTTP, 네트워크

챔수·2023년 3월 28일
0

개발 공부

목록 보기
31/101

URL, URI

URL

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

  • scheme : 통신 방식(프로토콜)을 결정. 일반적인 웹 브라우저에서는 http(s)를 사용.

  • hosts : 웹 서버의 이름이나 도메인, IP를 사용하며 주소를 나타냄.

  • url-path : 웹 서버에서 지정한 루트 디렉토리로부터 시작해 웹 페이지, 이미지, 동영상 등이 위치한 경로와 파일명을 나타낸다.

URI

Uniform Resource Identifier의 줄임말로 URL의 기본요소 cheme, hosts, url-path에 query, fragment를 포함해준다.
브라우저의 검색창을 클릭하면 나타나는 주소가 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웹 서버에 전달하는 추가 질문
  • 127.0.0.1 은 로컬 PC를 나타냄

IP

Internet Protocol의 줄임말로 인터넷상에서 사용한는 주소체계이다. 인터넷에 연결된 모든 PC는 IP주소체계에 따라 4덩이의 숫자로 구분되는데 이를 IPv4라 한다. IPv4는 각 덩어리마다 0부터 255까지 나타낼 수 있는데 그중 몇가지는 이미 용도가 정해져 있다.

  • locolhost, 127.0.0.1 : 현재 사용 중인 로컬 PC를 지칭
  • 0.0.0.0, 255.255.255.255 : brodcast address, 로컬 네트워크에 접속된 모든 장치와 소통하는 주소. 서버에서 접근 가능 IP 주소를 brodcast address로 지정하면 모든 기기에서 서버에 접근 가능.

HTTP Messages

HTTP Messages는 클라이언트와 서버 사이에 데이터 교환되는 방식으로 요청(Requests), 응답(Responses)가 있다.
요청(Requests), 응답(Responses)은 다음과같은 유사 구조를 같는다.

  • start line : start line에는 요청이나 응답의 상태를 나타낸다. 항상 첫번째 줄에 위치한다. 응답에서는 status line이라고 부른다.

  • HTTP headers : 요청을 지정하거나, 메시지에 포함된 본문을 설명하는 헤더의 집합.

  • empty line : 헤더와 본문을 구분하는 빈 줄.

  • body : 요청과 관련되 데이터나 응답과 관련되 데이터 또는 문서를 포함. 요청과 응답의 유형에 따라 선택적으로 사용.

HTTP Requests

Start line

HTTP Requests는 클라이언트가 서버에게 보내는 메시지다. Start line에는 세 가지 요소가 있다.

  • 수행할 작업(GET, PUT, POST 등)이나 방식(HEAD or OPTIONS)을 설명하는 HTTP method를 나타낸다. 예로 GET method는 리소스를 받아야 하고, POST method는 데이터를 서버로 전송받는다.

  • 요청 대상(일반적으로 URL이나 URI) 또는 프로토콜, 포트, 도메인의 절대 경로는 요청 컨텍스트에 작성된다. 이 요청 형식은 HTTP method 마다 다르다.

  • HTTP 버전에 따라 HTTP message의 구조가 달라진다. 따라서 start line에 HTTP 버전을 함께 입력한다.

Headers

요청의 Headers는 기본 구조를 따른다. 헤더 이름(대소문자 구분이 없는 문자열), 콜론( : ), 값을 입력하고 값은 헤더에 따라 다릅니다.

  • General headers : 메시지 전체에 적용되는 헤더로, body를 통해 전송되는 데이터와는 관련이 없는 헤더.

  • Request headers : fetch를 통해 가져올 리소스나 클라이언트 자체에 대한 자세한 정보를 포함하는 헤더를 의미한다. User-Agent, Accept-Type, Accept-Language와 같은 헤더는 요청을 보다 구체화한다. Referer처럼 컨텍스트를 제공하거나 If-None과 같이 조건에 따라 제약을 추가할 수 있다.

  • Representation headers : 이전에는 Entity headers로 불렀으며, body에 담긴 리소스의 정보(콘텐츠 길이, MIME 타입 등)를 포함.

Body

요청의 본문은 HTTP messages 구조의 마지막에 위치한다. 모든 요청에 body가 필요하지는 않음. GET, HEAD, DELETE, OPTIONS처럼 서버에 리소스를 요청하는 경우에는 본문이 필요하지 않다. POST나 PUT과 같은 일부 요청은 데이터를 업데이트하기 위해 사용.

  • Single-resource bodies(단일-리소스 본문) : 헤더 두 개(Content-Type과 Content-Length)로 정의된 단일 파일로 구성

  • Multiple-resource bodies(다중-리소스 본문) : 여러 파트로 구성된 본문에서는 각 파트마다 다른 정보를 지닙니다. 보통 HTML form과 관련이 있다.

profile
프론트앤드 공부중인 챔수입니다.

0개의 댓글