이채야채 2024. 4. 5. 15:33

https://developeritchaeyachae.tistory.com/27

 

HTTP (Request/Response)

HTTP ? : (서버와 클라이언트가) HTML,CSS와 같은 파일을 주고받기위한 메시지, 문서전송을 위한 프로토콜(통신 규약) HTTP message는 request,response가 있다. 개발자도구의 Network탭을 통해 웹브라우저와 웹

developeritchaeyachae.tistory.com

 

복습! 

 

1990년 웹은 4가지로 이루어져있었다.

 

1. HTML

2. URL, URI

3. WEB BROUSER/WEB SERVER

4. HTTP

 

HTTP - 가장중요한 통신규칙, 인터넷이 움직이는 근간.

 

Hyper Text TRansfer Protocol

 

클라이언트 -> 서버 : 물건주세요! 

클라이언트 : 서버님, HTML주세요 =  REQUEST

서버: 여기있습니다. = RESPONSE

 

컨텐츠를 주고받기위해서는, server, clinet가 공통인 메시지가 필요한데

그 메시지가 HTTP.

 

 

 

개발자도구에서 Network를 통해 모니터링 할 수 있다. = HTTP 메시지를 볼수 있다. 

 

Request Headers - 요청한 데이터 

아래 두줄이 필수이다.

Host : 프로세스를 구분하기위한 수단. 

 

HTTP1/1방식으로, 상태(성공적으로 데이터 받아 찾아줄게) 

'

웹브라우저 : 사용자가 요청한 정보를 대신 물어봐준다. (header)

웹서버:  위와같은 생긴 응답 header를 만들어주는 기계 같은것

 

으로 비유 할 수 있다.

 

아래. 첫번째 행: 요청행

 

Request와 Response 메시지의 기본틀

  1. start line : start line에는 요청이나 응답의 상태를 나타냅니다. 항상 첫 번째 줄에 위치합니다. 응답에서는 status line이라고 부릅니다.
  2. HTTP headers : 요청을 지정하거나, 메시지에 포함된 본문을 설명하는 헤더의 집합입니다.
  3. empty line : 헤더와 본문을 구분하는 빈 줄이 있습니다.
  4. body : 요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서를 포함합니다. 요청과 응답의 유형에 따라 선택적으로 사용합니다.

 

(요청)Request message

 

Start line : HTTP method + 요청 대상(일반적으로 URL이나 URI) 또는 프로토콜, 포트, 도메인의 절대 경로 + HTTP 버전

 *참고 : get / post <- http method , get : 리소스를 받아야하고 post : 데이터를 서버로 전송

 

HTTP haders:  필수로 있어야하는것은 Host - 하나의 웹서버가 여러개의 도메인을 서비스할 수 있다. 

예를들어, a라는 웹서버거ㅏ a.com, b.com 을 호스팅하고있고, 각각의 주소별로 다른 웹사이트라고 한다면, 웹서버는 host에 적혀있는 주소를 보고서 다른 주소를 보내 줄 수 있다. 이것이 가상 호스트

뒷부분은 port. 한대의 컴퓨터에는 여러개의 서버가 설치될수 있는데 8080에 등록되어있는 웹서버를 의미한다. (프로세스)

 

 

(User agent)라고 써있는것은 ? 웹브라우저의 다른 표현. 요청하는 웹브라우저가 어떤 웹브라우저인지. Chrome Macintosh, Mac OS버전이 무엇인지 ~~ 

 

(Accept Engoding) : 웹브라우저-웹서버 전송하는 데이터가 크면, 압축을 해서 전송하면 웹브라우저는 압축을 풀어서 처리할 수있는데, 어떤 압축 방식을 지원합니다.

 

(If-modified-since): 마지막으로 다운받은 날짜 

자신이 가지고있는 파일이랑 비교해서 더 다운로드할 필요없으면 전송 x  

 

(응답)Response message

 

Status line : 그림과 같이 3가지를 포함한다.

  1. 현재 프로토콜의 버전(HTTP/1.1)
  2. 상태 코드 - 요청의 결과를 나타냅니다. (200, 302, 404 등)
  3. 상태 텍스트 - 상태 코드에 대한 설명

headers 

  • General headers : 메시지 전체에 적용되는 헤더로, body를 통해 전송되는 데이터와는 관련이 없는 헤더.
  • Response headers : 위치 또는 서버 자체에 대한 정보(이름, 버전 등)와 같이 응답에 대한 부가적인 정보를 갖는 헤더로, Vary, Accept-Ranges와 같이 상태 줄에 넣기에는 공간이 부족했던 추가 정보를 제공
  • Representation headers : 이전에는 Entity headers로 불렀으며, body에 담긴 리소스의 정보(컨텐츠 길이, MIME 타입 등)를 포함하는 헤더

 

body 

모든 응답에 body가 필요하지는 않다. 201, 204와 같은 상태 코드를 가지는 응답에는 본문이 필요없다.