일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 컴퓨터비전
- 코딩
- 데이터과학
- 파이썬
- 자료구조
- 클라우드컴퓨팅
- 네트워크보안
- 데이터분석
- 2
- 웹개발
- 프로그래밍
- 자바스크립트
- 머신러닝
- 데이터베이스
- 버전관리
- 소프트웨어
- Yes
- 컴퓨터공학
- 보안
- 알고리즘
- 데이터구조
- 딥러닝
- 빅데이터
- 사이버보안
- 인공지능
- I'm Sorry
- 네트워크
- 소프트웨어공학
- 프로그래밍언어
- 컴퓨터과학
- Today
- Total
스택큐힙리스트
서버 전송 이벤트(SSE) 및 이벤트 소스(EventSource)는 POST 방식으로 매개 변수를 전달할 수 있습니까? 본문
서버 전송 이벤트(SSE) 및 이벤트 소스(EventSource)는 POST 방식으로 매개 변수를 전달할 수 있습니까?
스택큐힙리스트 2023. 9. 7. 14:23나는 Html5 Server Sent Events를 사용하고 있습니다. 서버 측은 Java Servlet입니다.
나는 서버에 전달하려는 json 배열 데이터가 있습니다.
'var source = new EventSource(../GetPointVal?id=100&jsondata= + JSON.stringify(data));
'
만약 배열 크기가 작다면, 서버 측에서 쿼리스트링을 가져올 수 있습니다.
하지만 배열 크기가 크다면 (수천 개의 문자일 수도 있음), 서버가 쿼리스트링을 가져올 수 없습니다.
쿼리스트링 길이 제한을 피할 수 있는 서버로 JSON 배열을 전달하기 위해, POST 방식을 사용할 수 있는지 가능한지 알 수 있을까요?
답변 1
아니오, SSE 표준은 POST를 허용하지 않습니다.
(기술적인 이유와는 무관하게 - 내가 알기로는, 사용 사례를 본적이 없는 것 같아요: 큰 데이터뿐만 아니라 사용자 정의 인증 체계를 구현하려면 GET 데이터에 암호를 넣지 않는 것이 안전상의 이유가 있습니다.)
'XMLHttpRequest'은 POST를 허용하므로, 옵션 중 하나는 오래된 long-poll/comet 방법으로 돌아가는 것입니다. (제 책인 'Data Push Apps with HTML5 SSE'은(는) 이를 어떻게 수행하는지에 대해 상세히 다루고 있습니다.)
또 다른 접근 방식은 사전에 모든 데이터를 &'POST' 개조해서 &'HttpSession' 안에 저장한 후 SSE 프로세스를 호출하는 것입니다. (SSE는 쿠키를 지원하므로 &'JSESSIONID' 쿠키는 잘 작동해야 합니다.)
참고로, 'standard' 는 POST를 사용할 수 없다고 명시하지는 않았습니다. 그러나 'XMLHttpRequest' 와는 달리 사용할 HTTP 메소드를 지정할 매개변수가 없으며, 전송하려는 데이터를 지정하는 방법도 없습니다.
답변 2
서버 보낸 이벤트(Server Sent Events, SSE)와 EventSource는 POST를 통해 매개변수를 전달할 수 있나요?서버 보낸 이벤트(Server Sent Events, SSE)는 웹 애플리케이션에서 실시간으로 데이터를 받을 수 있는 기술입니다. EventSource는 SSE를 구현하는 JavaScript API로, 이를 통해 서버로부터 이벤트 스트림을 수신할 수 있습니다. 이 때, EventSource를 사용하여 POST 메서드를 통해 매개변수를 전달하는지에 대해 알아보겠습니다.
흔히 사용되는 HTTP 호출은 GET과 POST입니다. GET 방식은 주로 서버로부터 데이터를 요청할 때 사용되는 반면, POST 방식은 서버에 데이터를 전달할 때 사용됩니다. SSE는 기본적으로 서버에서 클라이언트로 단방향 통신을 구현하는 것이기 때문에, SSE 자체에서는 POST 방식으로 매개변수를 전송하는 기능을 제공하지 않습니다.
그러나 SSE와 EventSource는 JavaScript를 사용하여 웹 애플리케이션을 개발하는 방식이기 때문에, JavaScript의 XMLHttpRequest 객체를 통해 POST 방식으로 서버로 데이터를 전송할 수 있습니다. 이때 전달되는 데이터는 SSE와는 별개로 서버에서 처리됩니다.
따라서 SSE와 EventSource를 사용하는 경우, SSE는 데이터 스트림을 수신하고, 별도의 AJAX 요청을 통해 POST 방식으로 서버로 매개변수를 전달할 수 있습니다.
이와 같은 방법을 이용하면 SSE와 EventSource를 통해 실시간 데이터를 수신하면서, 필요한 경우에는 AJAX를 사용하여 POST 방식으로 데이터를 전송할 수 있습니다.
이번 에세이에서는 SSE와 EventSource를 통해 POST 방식으로 매개변수를 전달하는 것에 대해 알아보았습니다. 어떤 경우에는 실시간 데이터 수신과 함께 POST 방식으로 데이터를 전달해야 할 필요가 있을 수 있습니다. 이를 구현하기 위해서는 JavaScript의 XMLHttpRequest를 통해 별도의 AJAX 요청을 사용해야 합니다. 이를 통해 웹 애플리케이션을 더욱 기능적이고 다양한 방식으로 개발할 수 있습니다.