어느 비전공자의 개발일지

HTTL 인터넷 네트워크 [ 3 ] HTTP 기본 본문

백엔드 개발자/Java[Spring]

HTTL 인터넷 네트워크 [ 3 ] HTTP 기본

vndn629 2023. 7. 21. 10:00

* 모든 것이 HTTP /HTTP 기본

HTTP : HyperText Transfer Protocol ( 문서간의 링크를 통해 연결할수 있는 걸로 시작 ) 지금은 모든 것을 담아 전송한다. (음성,영상,JSON,XML,등등)

HTTP/1.1 : 가장 많이 사용 하고 , 우리에게 가장 중요한 버전이다.

기반 프로토콜 ( 인터넷 F12 -> Network ->(우클릭) -> protocol 하면 h1.1/ h2 / h3 이렇게 볼수있음.

장점 : 각각 독립적인 진화가 가능하다.

 

* 무상태 프로토콜 지향 Stateful(스테이스 풀 : 상태유지), 무상태Stateless(*스테이스리스* : 상태유지X)

-서버가 클라이언트의 상태를 보존하지 않는다.

Stateful(스테이스 풀 : 상태유지) 서버1,2,3 있는데 서버1이 고장나면 진행이 되지않음. 다시 처음으로 돌아감

: 서버가 클라이언트의 이전 정보를 유지시킨다. (문맥 보존) 예를들어) 로그인

무상태Stateless(스테이트리스 : 상태유지X) 서버1,2,3 있는데 서버1이 고장나면 서버2로 돌려 진행이됨 고장시 서버3

: 클라이언트에 필요한 데이터를 담아서 보내버리면 서버1이 장애가 나도 다른 서버가 처리한다. (장점)

정리 : 웹애플리케이션을 최대한 무상태로 설계 한다, 어쩔수없는 경우에한에서만 상태유지를 한다..

 

* 비연결성 ( HTTP는 기본이 연결을 유지하지 않는 모델 , 일반적으로 초 단위의 이하의 빠른 속도로 응답)

클라이언트A,B 가 서버에 요청하는데 A가 요청하면 서버가 응답하고 TCP/IP를 끊어버린다. ( 서버가 최소한의 자원을 유지 함 )

단점 : 연결하고 끊고 다시 연결할 때 새로운 TCP/IP로 연결하기 때문에 속도가 감소됨. HTTP2or3 에 최적화가 되어있다.

 

* HTTP 메시지

시작라인

-요청메시지 ( HTTP 메서드 )

종류 : GET ,POST ,PUT ,DELETE 등…. 서버가 수행해야 할 동작을 지정 한다.

-요청메시지 ( 요청 대상 )

절대경로 = “/”로 시작하는 경로 ex) GET/search…………………………..

-요청메시지 ( HTTP 버전)

마지막에 HTTP/1.1 버전을 넣는다.

 

HTTP 헤더 ( header-field = field-name “:” OWS field-value OWS ) OWS:띄어쓰기 허용

Ex) Host: www.google.com / value는 대소문자 구분함.

HTTP 전송에 필요한 모든 부가정보가 들어가 있음.

 

HTTP 메시지 바디 ( 실제 전송할 데이터 ) ex) HTML문서,영상,JSON등 byte로 표현할수 있는 데이터

 

정리

: HTTP 메시지에 모든 것을 전송할수있다. 시작라인, 헤더 ,바디 , 단순하다, 확장 가능하다.

반응형