CS-Theory/NetWork

HTTP 가 뭔가요 ? Tomcat 의 요청가능한 최대 데이터 크기?

sung.hyun.1204 2023. 7. 27. 17:30

이글은 웹 서비스의 기본이 되는 http 와 관련된 내용 및 톰캣 공식 문서의 내용 일부를 포함한다.

 

HTTP  가 뭔가요 ?

 

HTTP 란 무엇인가 ?

Hyper Text Tranfer Protocol의 약자로 www 상에서 정보를 주고 받는 프로토콜이며 응용계층에 속하며 80 번 포트를 사용하여 통신을 한다.

 

HTTPS 는 443 번 포트를 사용한다.

 

우리가 흔히 보는 http 의 url 주소는 그럼 어떻게 http 메시지에 들어 가게 되는건가?

 

답은 메시지의 구조에 있다.

 

Http 프로토콜에서 사용되는 Request Message 는 크게  요청 라인 , 헤더 ,바디로 이루어져 있다.

HTTP 메서드 ,  Request Target , 프로토콜 버전 정보 이 들어가는 RequestLine

 

ex )

   GET /api/users?id=123&name=JohnDoe   HTTP/1.1

 

 

상태코드 , HOST 도메인 주소 , 세션 ID 가 들어있는 쿠키 등의 정보를 가지는 RequestHeader 

 

 

 

각종 데이터가 들어가 있는 RequestBody

ex) multipart , html

 

보통 body 에는 서버의 응답 메시지와  클라이언트에게 필요한 데이터를 담아 response 값으로 전달을 한다.

 

 

HTTP 매서드를 사용하여 api 가 어떤 요청을 하는지 클라이언트와 서버사이의 규약을 만들고 서버의 상태 및 자원의 생성,요청,상태 변화 등의 목적으로 클라이언트에서 요청을 보낸다.

 

 

 

GET과 POST 의 차이는 무엇인가 ?

 

 

Get 방식은 서버의 데이터의 상태가 바뀌거나 민감한 정보를 서버에 요청하지 않고 조회를 할때 주로 사용하며

Post 방식은 request body 를 사용하여 서버의 값이나 상태를 변경 또는 추가하기 위해서 사용한다.

 

메시지의 구조를 보면 url 쿼리를 통하여 민감한 정보를 외부에 노출이 가능하기 때문에 post 메서드를 사용하여 response body 의 회원의 비밀 번호를 담아 로그인을 요청할 수 도 있다.

 

POST PATCH의 차이는 무엇인가 ?

 

둘다 서버와 데이터를 주고받으며 상태를 바꾸는 http 메서드로 이용이 되며 자원을 생성 하거나 조회를 할때 post , 서버 자원의 상태일부를 수정하는데 patch 를 사용하며 추가로 자원의 전체를 업데이트 하는 것 은 PUT 메서드이다.

 

 

클라이언트와 서버가 서로 데이터를 주고 받는다면 얼만큼 데이터를 보낼 수 가 있는가 ?

 

공식적으로 http 1.1 스펙에 등록된 크기의 제한은 없고 웹서버의 설정 , 브라우저의 제한 , 중간 네트워크 장비에 따라 다르다 . 

 

 

 Tomcat 의 요청가능한 최대 데이터 크기?

 

Springboot 2.7 에서 사용하는 apache Tomcat 의 요청가능한 데이터크기의 제한은 없으며 데이터 사이즈가 커지면 스트리밍 방식으로 tomcat 에서 처리가 가능하다.

 

 

 

 

 

자료 출처 

 

[사진 1]

https://gnaseel.tistory.com/23 

 

[사진 2]

https://developer.mozilla.org/en-US/docs/Web/HTTP/Messages

 

HTTP Messages - HTTP | MDN

HTTP messages are how data is exchanged between a server and a client. There are two types of messages: requests sent by the client to trigger an action on the server, and responses, the answer from the server.

developer.mozilla.org

https://tomcat.apache.org/tomcat-9.0-doc/index.html

 

Apache Tomcat 9 (9.0.78) - Documentation Index

This is the top-level entry point of the documentation bundle for the Apache Tomcat Servlet/JSP container. Apache Tomcat version 9.0 implements the Servlet 4.0 and JavaServer Pages 2.3 specifications from the Java Community Process, and includes many addit

tomcat.apache.org