본문 바로가기
강의/웹 프로그래밍(풀스택)

부스트코스 웹 프로그래밍(풀스택) - 1. 웹 프로그래밍 기초 - 2 강의 정리

by 리드민 2022. 3. 7.
반응형

[1] 강의

웹 프로그래밍(풀스택)

1. 웹 프로그래밍 기초

2) 웹의 동작(HTTP 프로토콜 이해)

 

[2] 요약

인터넷(네트웍 통신)의 이해

월드와이드웹이 인터넷 통신의 전부는 아님

  물리적인 하나의 컴퓨터에는 여러개의 서버가 동작할 수 있다.

  각각의 서버들은 포트라는 값으로 구분되서 동작한다. 웹은 80번이라는 포트로 동작한다. 이메일은 25번 ftp는 21번 등으로 사용된다. 인터넷은 네트워크들의 네트워크라고 말할 수 있다. 수많은 네트워크들의 결합체이다. 이런 인터넷은 보통 TCP/IP 들로 연결되어 있다. 인터넷 중 웹에서 서로 통신하기 위해서 http를 사용한다.

  팀 버너스리라는 사람과 그가 솔한 팀은 CERN에서 HTML뿐만 아니라 웹 브라우저 및 웹 브라우저 관련기술과 HTTP를 발명하였다.HTTP는 서버와 클라이언트가 인터넷상에서 데이터를 주고 받기 위한 프로토콜(protocol)이다. HTTP는 동영상과 이미지를 포함해서 종류를 가리지 않고 전송할 수 있다. HTTP는 계속 발전해서 HTTP 버전2까지 나온 상태이다.

  HTTP는 서버 클라이언트 모델을 따른다. 클라이언트가 서버에서 먼저 요청을 보내 요청을 받아서 서버가 클라이언트에서 응답을 받는다.

  HTTP는 무상태 프로토콜이라고도 불린다. 클라이언트가 서버에게 요청해서 서버는 다시 클라이언트에게 응답한다. 먼저 연결하는 과정이 일어난다. 서버는 클라이언트의 요청에 응답을 하고 나면 바로 클라이언트와의 연결을 끊는다. 서버는 클라이언트가 어떤 클라이언트인지 알 수 없다. 이것을 statless라고 한다. 원래는 불특정 다수를 대상으로 하는 서비스에 적합하다.

  소스를 배포할때 윈도우즈는 최대 접속 숫자가 10명 까지이다. 11번째 사용자는 접속이 되지 않는다. 11번째 사용자가 접속하려면 누군가 접속을 끊어줘야 한다. 반면 stateless는 바로 연결을 끊기 때문에 최대 연결 수 보다 훨씬 많은 요청과 응답을 처리할 수 있다. 단점은 클라이언트가 뭘 했는지 알 수 가 없다. 이러한 것들을  해결하기 위해서, 정보를 유지하기 위해서 쿠키와 같은 것들이 등장하게 된다.

 

URL(Uniform Resource Locator)

  자원의 위치를 나타내기 위해서 사용이 된다. URL은 세부분으로 나눠진다. 접근 프로토콜 부분, IP 주소 또는 도메인 이름, 문서의 경로 이름. IP는 집의 집 주소 이름, 문서의 경로이다. IP주소는 집주소, 포트번호는 방 주소라고 생각하면 된다. 각 서버는 하나의 방을 하나씩만 차지해야지 된다. 포트 번호가 각각 달라야한다.

  하나의 물리적 컴퓨터에는 여러개의 서버가 동작할 수 있다. 서버는 포트 값이 다르게 동작해야 한다. HTTP 서버의 기본 포트값은 80번이다.

  요청 데이터는 정해진 규격이 있다. 이것을 요청 데이터 포맷이라고 한다. 이런 웹브라우저는 요청 메시지를 갖는다. 이 요청 메시지에는 헤더 부분, 빈줄부분, 요청 바디 부분 이렇게 3부분으로 나뉘게 된다. 헤더 부분부터 살펴보자면 첫 번째 줄에는 헤더의 필수 등장 요소가 나온다. get-> 요청. 다음 나오는 부분이 요청 url 부분이다. 자원의 위치를 명시해 주는 부분이다. 마지막으로 나오는 부분이 http 프로토콜의 버전 웹 브라우저가 사용하는 프로토콜의 버전을 명시해 주는 부분이다. 첫번째 줄의 요청 메소드는 get 말고도 여러가지가 제공된다. get 방식 요청할 자원같은것도 url에 붙여서 가져가기 때문에 body부분이 없을 수 있다. 두번째 줄은 여러줄에 헤더 정보가 나온다. 헤더 정보가 콜론으로 구분되어 있는 것을 볼 수 있다.  각 줄은 나인티드와 캐리지 리턴으로 구분이 된다. 요청 메서드가 get일 경우에는 빈줄 다음에 등장하지 않는다. body 요소는 요청 메소드가 post나 put을 사용할 때 들어오게 된다.

 응답 데이터 포맷에 대해서 알아보자 응답 데이터 포맷도 헤더 부분, 빈 줄 부분, 응답 바디 부분 이렇게 나오는 것을 볼 수 있다.

첫 줄에는 반드시 응답 HTTP 프로토콜의 버전 그 다음은 응답 코드, 응답 메시지 등으로 나올 수 있다. 그리고 나머지 헤더 부분에는 날짜, 웹 서버 이름과 버전, 콘텐츠 타입, 캐시 제어 방식, 콘텐츠 길이 등의 값이 나오게 된다. 빈 줄 다음에 나오는 것이 실제 응답 리소스 데이터가 나오는 부분이다.

반응형