틀린 내용이 있다면 언제든 지적해주세요. 감사합니다 🙇🏻♀️
박재성님의 넥스트 스텝 미션을 구현하면서 HTTP 관련해서 학습을 진행했다. 평소에 대충 알고 있고 넘어가는 부분들이 있어 중요하다고 생각한 부분들을 정리해 보았다.
WWW(World Wide Web)상에서 웹 클라이언트와 웹 서버간의 커뮤니케이션을 가능하게 하는 프로토콜이다.
여기서 웹 클라이언트는 브라우저(크롬, 사파리 등)고 서버는 클라우드에 있는 컴퓨터라고 보면 된다.
클라이언트와 서버의 커뮤니케이션은 request와 response
로 이루어 지는데 그 과정은
- 클라이언트는 HTTP Request를 보낸다.
- 웹 서버는 request를 받는다.
- 서버는 request를 처리하기 위해 어플리케이션을 실행한다.
- 서버는 HTTP Response를 브라우저에게 리턴한다.
- 클라이언트는 response를 받는다.
크게 Request Line과 Request Header 그리고 Body로 구성되어 있다.
필드 이름: 필드 값
으로 이루어져 있다.
크게 Status Line, Response Header 그리고 Body로 구성되어 있다.
Location
헤더에 주어진 URL에 이동되었음을 가리킨다.HTTP Redirect는 3xx
상태 코드를 지닌 응답.
Redirect 응답을 수신한 브라우저는 제공된 새로운 URL을 사용한다.
Redirection은 크게 세 가지로 분류 되는데 영속적 Redirection, 일시적 Redirection, 특수 Redirection이 있다.
위의 HTTP Response 메시지를 살펴본 것처럼 서버에서 Http Response를 보낼 때 헤더에 Set-Cookie
를 포함해 전송할 수 있다.
쿠키는 보통 브라우저에 저장되고 만료일이나 지속시간도 설정 할 수 있다.
예시) Http Response
HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: logined=true
...
이 후에는 서버로 전송되는 모든 요청에 브라우저는 Cookie를 포함해서 보낼 수 있다.
예시) HTTP Request
GET /login.html HTTP/1.1
Cookie: logined=true
잘보고 갑니닷 케이~ 열심히 하고 계시는 군여~~