-
HTTP란
HyperText Transfer Protocol의 약자로 웹에서 클라이언트와 서버간의 컨텐츠(HTML/JavaScript/Css/이미지 등)를 주고 받기위해 서로 알아볼 수 있는 메세지이다.
HTML과 같은 Text파일뿐만 아니라 이미지 오디오 동영상과 같은 다양한 멀티미디어 파일을 전송하는 프로토콜이다.
즉, HTTP는 클라이언트의 Request와 서버의 Response를 위한 메세지이다.
프로토콜(protcol) : 컴퓨터 네트워크나 통신 시스템에서 통신 간의 규칙이나 규약을 의미한다. 프로토콜은 특정한 통신 형태나 서비스의 표준화된 방법을 정의하며, 이는 효율적이고 정확한 데이터 교환을 가능케 한다.
ex) TCP/IP(Transmission Control Protocol/ Internet Protocol) : 컴퓨터 간의 통신을 지원하기 위한 핵심 프로토콜
HTTP(HyperText Transfer Protocol) : 웹 브라우징을 위한 프로토콜
SMTP(Simple Mail Trasnfer Protocol) : 이메일 전송을 위한 프로토콜웹브라우저의 개발자도구(크롬은 F12)에서는 Network탭을 통해서 웹브라우저와 웹서버가 어떻게 통신하고 있는지 알 수 있다.
Response Headers는 서버가 웹브라우저에게 응답한 정보를 볼 수 있다.
맨 첫줄은 HTTP/1.1 방식으로 200(성공적으로 데이터를 가져왔다!) 반환 이라는 뜻
Request Headers는 웹브라우저가 서버에게 요청한 정보를 보여준다.
Get방식을 통해서 1.html을 요청, 내가 사용하는 방법 HTTP/1.1
주소는 localhost:8080 이라는 정보를 보냄
즉, 웹브라우저는 사용자가 요청한 정보를 Request Headers안에 넣어서 웹서버에게 대신 물어보는 역할을 한다.
HTTP Request Message
GET/1.html HTTP/1.1
Get방식, 1.html 정보 요청, HTTP/1.1 버전
Host: localhost:8080
요청한 주소를 나타냄User-Agent
웹브라우저의 다른표현이라고 보면 됨(요청하는 브라우저가 어떤 웹브라우저인지 보여줌)
현재 사용자의 운영체제와 버전, CPU정보가 담겨있음(위의 사진은 Mac OS 10_13_5버전 , intel CPU)
이를 통해, 나중에 어떤 브라우저를 쓰는 사람이 많이 접속하는지 등의 통계를 낼 수 있으며, Bot이 접속하는 경우 차단이 가능하다.Accept-Encoding
웹서버에서 크기가 큰 컨텐츠들은 압축을 통해서 웹브라우저로 보내지게 되는데, 압축을 지원하는 형식을 보여줌
If-Modified-Since
서버는 효율성을 위해 요청할 때 마다 데이터를 보내주는 것이 아닌, If-Modified-Since의 시간 값을 비교해서 최신의 데이터가 업데이트 된 경우에만 보내주게 된다.
HTTP Response Message
HTTP/1.1 200 OK
HTTP/1.1 방식으로 200(성공적으로 데이터를 가져왔다!) 반환 OK(유저가 이해하기 쉽도록 써준부분)
(status code검색하면 더 많은 정보를 알 수 있다.)
Last-Modified
마지막으로 데이터를 보내준 날짜(Request에 있는 If-Modified-Since와 비교해서 업데이트 됐을 때만 데이터를 넘겨줌)Content-Encoding
gzip이라는 형식으로 데이터가 압축됨을 알려줌Content-Length
컨텐츠의 글자수Content-Type
컨텐츠의 형식(Text형식으로/HTML임)
참고자료
https://opentutorials.org/course/4848/21673
'CS' 카테고리의 다른 글
동시성 제어(Concurrency Control) (0) 2024.03.26 쿠키(Cookie)란 무엇인가? (+ Session 추가정리) (0) 2023.12.18 NoSQL이란 무엇인가? (0) 2023.12.14 REST API란 무엇인가? (2) 2023.12.05 HTTP API와 HTTP Method (0) 2023.12.04