HTTP 란?
Hypertext Transfer Protocol 의 약자입니다.
전송하는 규약인데 어떤것을 전송하느냐? 하이퍼 텍스트 입니다.
하이퍼텍스트라는것은 링크가 들어있는 텍스트를 말합니다.
지금이야 동영상, 사진, 오디오 등 다양한 미디어들이 함께 전달되고있지만
초창기에는 단순히 텍스트와 링크뿐이었습니다.
그래서 Hypermedia Transfer Protocol 이라고 생각해도 맞지 않을까 생각합니다.
Request, Response
http는 요청에대한 응답을 반환합니다.
https
http + Secure
클라이언트와 서버간의 데이터 통신을 암호화 하여 안전한 방식으로 하는 것입니다.
서로 보안관계가 형성된 클라이언트와 서버끼리 데이터를 안전하게 전달하고 전달받고, 제 3자는 보안관계가 형성되어있지 않기 때문에 그 데이터를 볼수 없습니다.
실제로 https를 적용하기 위해서는 특정 도메인을 지정해주어야합니다.
HTTP v1, HTTP v2, HTTP v3
v1 -> v2 로 변경된 사항은 기술적인 측면도있고, 다양합니다.
그중에 알아야 할 개념은, http2는 반드시 https만 지원한다는 점입니다.
2019년도부터 v3를 개발중인데, v2와 큰 차이점은 없다고 하는데, 많은 브라우저가 지원하진 않고 있습니다.
HTTP v1
- 통신되는 데이터가 텍스트 기반입니다.
- header의 데이터도 압축되지 않은 형태로 그대로 노출
- 한번의 하나의 파일만 전송가능
HTTP v2
- binary 형태로 전송됨
- header 부분도 압축
- 여러개의 파일을 동시에 주고받을 수 있음 (multiplexing)
- 이외 보안과 성능이 개선
HTTP v3
- TCP 프로토콜에서 UDP프로토콜을 base로 개발 중
정리
클라이언트와 서버가 통신을 할때는
- TCP 커넥션을 합니다.
- 클라이언트는 이제 request를 할 수 있게됩니다.
- 클라이언트는 어떤 정보를 원하는지 method, url, header, resource 를 함꼐 요청합니다.
- 서버는 status코드와 함께 response를 전달합니다.
- 통신할 것이 더이상없다면 TCP 연결을 종료합니다.
반응형
'Archive' 카테고리의 다른 글
[18] Request (0) | 2022.04.03 |
---|---|
[17] status code (0) | 2022.04.03 |
[15] node로 자동화 스크립트 만들기 (0) | 2022.04.01 |
[14] npm (0) | 2022.03.31 |
[13] pipe (0) | 2022.03.30 |