본문 바로가기

Web4

[XFF] 클라이언트 IP 가져오기 (X-Forwarded-For) X-Forwarded-For(XFF) - HTTP Header 중 하나로 HTTP Server에 요청한 Client의 IP를 식별하기 위한 표준 - 웹 서버나 WAS 앞에 L4 같은 Load balancers 나 Proxy server, caching server 등의 장비가 있을 경우 웹서버는 Proxy server 나 장비IP에서 접속한 것으로 인식 따라서 웹서버는 실제 클라이언트 IP가 아닌 앞단에 있는 Proxy서버 IP를 요청한 IP로 인식하고, Proxy장비 IP 로 웹로그를 남김 이 때 웹 서버에서는 X-Forwarded-For HTTP Hearder에 있는 클라이언트 IP를 찾아 실제 요청한 클라이언트 IP를 알 수 있고, 웹로그에도 실제 요청한 클라이언트 IP를 남김 콤마를 구분자로 Cl.. 2020. 4. 14.
[HTTP] PUT, PATCH 차이점 PUT, PATCH 둘다 update 작업을 수행한다. 둘의 차이는 PUT은 전체 데이터를 입력받아 덮어쓴다. PATCH는 일부만 입력받고 일부만 update한다. Member라는 객체(테이블)의 속성이 ID, PW, Address가 있고 id: user10, pw:1111, address: 서울 이라는 값을 가진 Member가 있다고 가정하자. PUT으로 { id: user10, pw: aaa123 } 호출 시 { id: user10, pw: aaa123, address: null } 이 된다. 즉, 모든 데이터가 덮어 써지기 때문에 입력하지 않는 값은 null로 바뀌어버린다! PATCH는 { id: user10, pw: aaa123 } 호출 시 { id: user10, pw: aaa123, addre.. 2020. 4. 7.
[HTTP] 커넥션 관리 HTTP 커넥션 - 전세계 모든 HTTP 통신은 TCP/IP - 어디서든 클라이언트는 서버로 TCP/IP 커넥션 연결 가능 - 커넥션 연결 시 상호간의 메세지들은 손실 및 손상이 없으며, 순서대로 안전하게 전달 - HTTP커넥션은 몇몇 사용규칙을 제외하고는 사실상 TCP 커넥션 - 컴퓨터는 항상 TCP를 여러개 가지고 잇으며 TCP는 포트번호로 여러개의 커넥션 유지 브라우저와 서버 간의 통신 과정 1. 브라우저가 호스트명에 대한 IP 주소와 포트번호를 찾는다. www.dreaming-soohyun.tistory.com:80 -> 192.168.0.1, 80 2. 브라우저가 해당 IP 및 포트로 TCP 커넥션을 생성한다. (커넥션 생성은 서버와의 거리, 서버의 부하, 인터넷 혼잡도에 따라 시간이 걸림) 3.. 2020. 4. 2.
동일출처정책과 CORS 그리고 해결 방법 동일출처정책(Same-Origin Policy) - 같은 도메인과 포트에서 들어온 요청에 대해서만 접근을 허용 CORS(Cross-Origin Resource Sharing) - 동일출처(도메인과 포트)가 아닐 시 요청의 응답을 거부한다. 보통 Ajax 호출 시 많이 보게 된다. Preflight Request - HTTP Header에 options를 이용하여 먼저 요청을 보낸 후 서버에서 응답이 가능한 지 확인 후 원래 요청을 다시 보내는 방식이다. 해결 방법 1) Access-Control-Allow-Origin헤더 추가 서버에서 응답(response)를 보낼 시 해당 헤더를 추가하는 방식이다. 서버에서 작업해야되며 스프링에서는 @CrossOrigin이라는 어노테이션을 이용하여 Controller .. 2020. 3. 2.