📕 제 2장 웹 프로그래밍 기초 다지기 💬 GET방식 - 웹 서버에 데이터를 보낼 때, URL에 쿼리 스트링의 형식으로 데이터를 전송한다 GET 요청의 발생 1. 웹 브라우저 주소창에 URL을 입력 2. 링크를 클릭하는 경우 3. 입력 form의 method 속성 값이 get인 경우 GET 요청의 장단점 - URL만으로 쉽게 웹 사이트에 접근할 수 있다 - 사용자가 입력한 데이터가 주소창에 그대로 노출 된다 → 보안에 취약 💬 POST방식 - 웹 서버에 데이터를 보낼 때, HTTP프로토콜의 메시지 본문(MessageBody)에 붙여서 전송한다 POST방식의 장단점 - 사용자의 입력값이 URL에 포함되지 않기 때문에 외부에 노출되지 않는다 - 데이터를 URL에 포함하지 않기때문에 URL만으로 결과 화면에 ..
📕 제 2장 웹 프로그래밍 기초 다지기 2.4 파일 업로드 - 웹 서버에 바이너리 데이터를 보내기 위해 고안된 멀티파트 인코딩 방법을 알아보자 - 이를 위한 태그의 설정 방법에 대해서도 함께 다루도록 한다 파일 업로드를 위한 태그 설정 : 멀티 파트 인코딩 태그의 enctype 속성 - 태그의 enctype 속성은 데이터가 서버로 제출될 때 해당 데이터가 인코딩 되는 방법을 명시한다 - 이 속성은 요소의 method 속성값이 “post”인 경우에만 사용할 수 있습니다. - 기본 값은 aplplication/x-www-form-urlencoded 을 사용한다 - 바이너리 데이터를 보내기 위해서는 multipart/form-data 으로 인코딩해야 한다 - 이미지나 동영상과 같은 바이너리 데이터를 전송해야 ..
📕 제 2장 웹 프로그래밍 기초 다지기 2.3 POST 요청 - 태그의 method 속성을 post로 지정하여 사용한다 - URL에 데이터가 포함되지 않아 외부에 노출되는 위험을 방지한다 - 메시지 본문에 데이터가 포함되므로, 실행 결과의 공유가 불가능하다 - 바이너리 및 대용량 데이터의 전송이 가능하다 POST 요청의 HTTP 프로토콜 확인 POST /web01/LoginServlet HTTP/1.1 # 요청 라인 Host: localhost:9999 Content-Length: 22 # Content-Length 헤더 ... Content-Type: application/x-www-form-urlencoded # Content-Type 헤더 ... # 공백 라인 id=tiger&password=lll..
📕 제 2장 웹 프로그래밍 기초 다지기 2.2 Get요청 URL에 데이터를 포함하므로 데이터 조회에 적합하다 데이터 전송에 특화된 방식이 아니므로, 바이너리 및 대용량 데이터 전송은 불가능하다 요청 라인과 헤드 필드의 최대 크기가 존재한다 - HTTP 사양에는 제한사항이 없다 - 대용량 URL로 인한 문제 발생 → 웹 서버에 따라 최대 크기가 제한된다 - Microsoft IIS 6.0+ : 16KB - Apache 웹 서버 : 8KB 💬 GET 요청이 발생하는 경우 1. 웹 브라우저 주소창에 URL을 입력하여 서버의 자원을 요청하는 경우 (예) http://localhost:9999/web02/GetTest.html → GetTest.html을 요청 2. 링크를 클릭하는 경우 3. 입력 form의 me..
📕 제 2장 웹 프로그래밍 기초 다지기 1-5. HTTP 클라이언트 만들기 package lesson02.client; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.Socket; public class SimpleHttpClient { public static void main(String[] args) throws Exception { // 1. 소켓 및 입출력 스트림 준비 Socket socket = new Socket("www.daum.net", 80); BufferedReader in = new BufferedReader(new InputStream..
📕 제 2장 웹 프로그래밍 기초 다지기 1-4. HTTP 응답 - 웹 브라우저가 요청하면 웹 서버는 그에 대한 작업을 수행하고, 응답 데이터를 보낸다 - 웹 서버가 응답한 내용에 대해 알아보자 (1) 상태 라인 (Status-Line) - 응답 메시지의 첫 라인은 응답 결과에 대한 상태 정보이다 - 프로토콜 버전과 상태 코드, 설명으로 구성된다 - 웹 어플리케이션을 개발하는 동안 자주 접하게 되는 응답 상태 코드에 대해 알아보자 (2) 응답 헤더 - 응답 데이터를 처리할 때 참고하도록 웹 브라우저에게 알려주는 정보를 담는다 - Content-Type 헤더는 서버가 웹 브라우저에 보내는 데이터의 형식을 나타낸다 - 웹 브라우저는 헤더의 값을 보고 데이터를 출력할지, 다운로드 창을 띄워야 하는지, 외부 프로..
📕 제 2장 웹 프로그래밍 기초 다지기 1-3. HTTP 요청 (1) 요청 라인(Request-Line) - 요청 메시지의 첫 라인에는 메서드와 요청하는 자원, 프로토콜 버전으로 구성된다 1-1. 메서드 - 요청하는 자원에 대해 웹 서버에게 내리는 명령 - 메서드에는 GET, POST, HEAD, PUT, DELETE, TRACE, CONNECT, OPTIONS 등이 있다 1-2. 요청 URI - HTML 파일이나 이미지, 동영상 등이 있는 가상의 경로를 의미한다 - 웹 서버는 식별자인 요청 URI를 이용해 필요한 자원을 찾는다 - 이미지에는 기본문서를 의미하는 / 를 작성했지만, 자원을 요청하는 경우 경로를 명시한다 (예) /img/test.jpg 1-3. HTTP버전 - HTTP버전은 요청 정보가 어..
📕 제 2장 웹 프로그래밍 기초 다지기 1-2. HTTP 모니터링 HTTP 프록시 - 웹 브라우저와 웹 서버 사이에 주고받는 데이터를 살펴보기 위해서는 HTTP 프록시 프로그램이 필요하다 - 프록시 프로그램의 구동원리는 아래의 그림과 같다 - 웹 브라우저가 웹 서버에게 요청을 하면 HTTP프록시가 대신 서버에 전달한다 - 서버로부터의 응답도 HTTP 프록시가 대신 웹 브라우저에 전달한다 - HTTP 프록시는 웹 브라우저와 웹 서버의 중간에서 요청과 응답을 중계해준다 - 그렇기 때문에 HTTP 프록시 프로그램을 사용해 클라이언트와 서버 사이에서 주고받는 데이터를 확인할 수 있다 HTTP 프록시 모니터 프로그램의 종류 - Charles : https://www.charlesproxy.com/ - Fiddle..
📕 제 2장 웹 프로그래밍 기초 다지기 1-1. HTTP 프로토콜 - 웹 브라우저와 웹 서버 사이의 데이터 통신 규칙 - 웹 페이지의 링크를 클릭하면 웹 브라우저가 보낸 데이터를 분석하여 요청받은 일을 처리하고 응답한다 - 웹 브라우저에서 요청한 파일을 찾아 보내주며, 데이터를 보낼 때에는 HTTP 응답 형식에 맞추어 보낸다 - HTTP 프로토콜은 단순히 파일을 전송하는 것 뿐만아니라 - 원격 컴퓨터에 로딩되어 있는 함수나 객체의 메서드를 호출할 때에도 사용된다 HTTP 프로토콜 응용 기술 1. SOAP(Simple Object Access Protocol) - HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜이다 - SOAP은 웹 서비스에서 기본..