지난 번에 이슈를 처리하고 나서, 새롭게 잘못된 부분이 나왔다.이에 따라 새롭게 공부하면서 누락된 부분이 있어 내용을 추가한다. ajp 헤더는 아파치에서 java ee 서버로 메시지를 보내는 것으로 시작한다.지난번 포스팅에서 말했듯이 첫 메시지는 http 메시지를 담고 있다. 이는 다르게 말하면 두번째 메시지부터 http 바디를 보낸다는 뜻이다.그런데 여기에서 버그를 유발하는 부분이 있었다. 스펙에 따르면 http content-length를 고려하도록 되어 있다.먼저, content-length가 있는 경우와 없는 경우로 동작이 갈린다. content-length가 있는 경우에는, 0보다 큰 경우에는 바로 body를 1개 보낸다.content-length가 없거나 0인 경우엔 자바 어플리케이션 쪽에서 ..
이슈 처리하다가 AJP 프로토콜에 대해 공부해야할 일이 생겼다.이슈 내용은 AJP 요청 header의 payload length가 0일 때 요청을 제대로 처리 못한다는 것이었다.문제는 요즘 아파치나 IIS에서는 payload length에 0을 넣어서 보내지 않는다는 것이었다.그래서 테스트를 위해 AJP 구조에 대해 공부를 해야 했다. 참고로 이 포스팅에 있는 모든 내용은https://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html에 있습니다. AJP 프로토콜에서는 아파치가 클라이언트, J2EE 서버가 서버 역할이다.아파치가 앞단에서 브라우저로부터의 요청을 받고, 그것을 파싱해 서버에게 넘긴다.그림으로 표현하면 아래와 같다. 브라우저는 아파치로 HTTP 요청을 보..
보통 톰캣 서버나 JAVA EE 서버를 사용할 때에는 load balancing을 위해 nginx나 apache 등 웹 서버를 배치한다.이중 아파치와 톰캣을 연결하기 위해 크게 AJP 프로토콜과 reverse proxy를 사용한다.reverse proxy는 자바 서버나 아파치에 국한되지 않고, 모든 종류의 서버에 사용할 수 있다는 장점이 있지만, 설정이 좀 더 복잡하다.AJP 프로토콜은 아파치 재단에서 만든 프로토콜인데, 아파치 웹 서버와 JAVA EE 서버 간의 연결을 위한 프로토콜이다. 지난 포스팅에서는 apache를 빌드했었다. 저 빌드로는 아파치에서 기본적인 html 페이지밖에 띄워주진 못하지만, 목적이 실제 운영이 아닌 AJP 프로토콜을 이용한 통신에서 테스트하는 것에 있으므로 php 등이 작동..
- Total
- Today
- Yesterday
- springboot3
- 현금영수증
- java
- 알리
- JPA
- 안전신문고
- 포상금
- Azure
- 공익제보단
- 알리익스프레스
- 토스페이
- ORM
- 전세사기
- n+1
- k베뉴
- ouath2
- 부가가치세
- Thymeleaf
- 이륜차
- Request
- 한국교통안전공단
- tomcat
- 광군제
- springboot
- Java17
- 티스토리챌린지
- Spring
- 홈택스
- 탈세
- 오블완
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |