반응형

java

    HTTP

    HTTP는 웹클라이언트가 서버와 대화하는 방법과 서버에서 다시 클라이언트로 데이터가 전송되는 방법을 정의한 표준이다. HTTP는 일반적으로 HTML파일과 그 안에 포함된 이미지를 전송하는 수단쯤으로 생각되지만, HTTP는 데이터 형식을 가리지 않고전송이 가능하다. HTTP는 웹 브라우저와 웹 서버 사이에 통신을 위한 표준 프로토콜이다. HTML 연결(클라이언트의 서버로의 요청)클라이언트가 서버의 HTTP 기본 포트 80에 대해 TCP 연결을 연다. 다른 포트 사용시 URL에 명시클라이언트가 특정 경로에 위치한 리소스를 요청하는 메시지를 서버로 보낸다. 요청에는 헤더와 선택적으로 빈 줄로 구분된데이터가 포함된다.서버는 클라이언트에게 응답을 보낸다. 응답은 응답 코드로 시작하며, 메타데이터의 전체 헤더와 빈..

    InputStream & OutPutStream

    바이트 단위로 기본적으로 지원한다. 이것은 가장 원시적인 형태의 입출력이며 아무런 변환 작업을 수행하지 않는다. 그러므로 바이너리 형태의 자원을 다루기 적합하며 InputStream/OutputStream의 두 클래스가 최상위 클래스이다. 두개의 클래스는 추상 클래스로 정의 되어있어 BufferedOutputStream, FileOuputStream등과 같이 내보내고자하는 타입에 맞게구현할 수 있다. 출력스트림 outputStream은 write라는 메소드를 제공하는데 0~255사이의 값만을 입력 받을 수 있다. 입력된 값의 하위 8비트를 출력한다. 하나씩 outputStream으로 전송하는 방식은 통신을 하는 서버에 굉장히 부담이다.Byte[]에 저장 후 한번에 write(byte)처럼 한번에 보내는 ..

    소켓 통신 (어플리케이션)

    소켓 통신 (어플리케이션)데이터 통신을 하다보면 패킷 나누기, 헤더 만들기, 수신 측에서 헤더 분석하기, 손실된 패킷 찾기 등에문제가 발생 할 수 있는데 소켓을 사용하게 되면 이를 한번에 해결할 수 있다. 소켓이란 두 호스트 사이의 연결을 말한다. 소켓의 기능 - 원격 장비에 연결하기 (서버, 클라이언트) - 데이터 보내기 (서버, 클라이언트) - 데이터 받기 (서버, 클라이언트) - 연결 닫기 (서버, 클라이언트) - 포트 지정하기 (서버) - 수신 대기하기 (서버) 지정된 포트에 대해 원격 장비의 연결 받아들이기 (서버) 해당 기능은 ServerSocket 클래스에 의해 제공된다. 연결이 되면 서버와 클라이언트는 서로 입력 스트림과 출력스트림을 얻게 되어 full-duplex 통신을 하게된다. 그리고..

    UDP 통신

    UDP 통신 UDP소켓은 두 호스트 사이의 고유의 연결이라는 개념이 없다. UDP소켓은 또한 TCP처럼 단일 연결을 위해 할당되지 않는다. TCP소켓은 네트워크 연결을 스트림처럼 다룬다. 소켓에서 가져온 입출력 스트림을 사용해 데이터를 보내거나 받는다. UDP는 이러한 방식을 지원하지 않고항상 개별 데이터그램 패킷으로 작업해야한다. 단일 데이터 그램에 채워 넣는 모든 데이터는 단일 패킷으로 전송되고, 덩어리채 유실되기도 한다.-> 패킷들 사이에 연관성이 없으며, 누가 먼저 보내져야 하는지에 대한 근거가 없다. UDP에서 전송될 주소를 포함한 데이터그램에 대한 모든 것이 패킷 그 자체에 저장되어 있기에 소켓은 대기하거나 전송할 로컬 포트만 알고 있으면 된다. 자바의 UDP 구현은 DatagramPacket..

    Java 소켓 통신(서버)

    Java 소켓 통신(서버) 서버 소켓은 서버에서 실행되며, 들어오는 TCP 연결을 기다린다.자바는 본질적으로 ServerSocket 클래스를 제공한다, 서버 소켓 생성하기 (기본 생성방법)4개의 생성자를 제공한다. 상황에 따라, port, 요청 큐 길이, InetAddress를 받아 생성 할 수 있고, 아무 정보가 없는 빈ServerSocket 파일도 생성이 가능하다. -> 특정 InetAddress 객체를 전달 받았을 경우 입력받은 지정된 주소로 들어오는 연결에 대해서만 서버 소켓을 대기한다.->포트번호를 0으로 설정할 경우 시스템은 사용할 수 있는 포트를 임의로 선택한다. 사용자에게 임의로 선택된 포트는 미리 알수 없기에 익명 포트라고 한다. 익명 포트는 FTP와 같은 다수의 소켓을 사용하는 프로토콜..

    java 소켓 통신 (보안소켓)

    java 소켓 통신 (보안소켓) 수누핑 공격에 방어하기 위해 인터넷 연결에 대한 근본적인 보안을 강화하기 위한 방법으로 소켓을 암호화 할 수 있다.이 방법은 트랜잭션에 대한 기밀성과 인증, 무결성을 제공한다. 보안소켓을 생성하는 것은 JSSE를 사용하여 보안통신을 위한 통신협상과 필요한 암호화를 투명하게 처리하는 소켓과 서버 소켓을만들 수 있다.소켓과 스트림을 통해 데이터를 보내기만 하면 된다. JSSE(Java Secure Socket Excetion)은 4개의 패키지로 나뉜다. Javax.net.ssl 보안 네트워크 통신을 위한 자바 API를 정의하는 추상 클래스.Javax.net 보안 소켓을 생성하기 위해 생성자 대신 사용되는 추상 소켓 팩토리 클래스.Java.security.cert SSL에 필요..

    자바 빈즈 개념 설명(Java Beans)

    java beans(자바 빈즈) 빈즈는 특정한 일을독립적으로 수행하는 컴포넌트를 의미한다.빈즈또한 자바 클래스이기 때문에 JSP 파일 스크립트릿 부분에서 인스턴스를 만들어 사용할 수 있다. 그러나 일반 클래스와 다를바없이 사용할수도 있지만 JSP 빈즈만의 특징적으로 사용할 수 있다.일반적으로 빈즈를 사용하는 경우, 사용자 입력을 처리하기 위한 HTML이나 JSP가 있어야 폼의 액션에 연결된 JSP 파일이 있어야 한다. 또한 폼을 처리하는 JSP 파일에서 참조할 빈즈 클래스가 필요하다. 1. form html(form, jsp, DB컬럼네임이 같아야한다.)ㄷ 2. a.jsp 3. JSP BEans class(my.MemberBean)publc static setUsername(String username)..

    인스턴스 메소드와 정적 메소드

    - 인스턴스 메소드는 인스턴스 메소드와 관련된 작업을 하는, 즉 메서드의 작업을 수행하는데 인스턴스변수를 필요로 하는 메서드이다.- 인스턴스와 관련이 없는 메서드를 클래스메서드(static메서드)로 정의한다. 1. 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통적으로 사용해야하는 것에 static을 붙힌다. 2. 클래스변수(static 변수)는 인스턴스를 생성하지 않아도 사용할 수 있다. 3. 클래스 메서드(static 메서드)는 인스턴스 변수를 사용할 수 없다. 4. 메서드 내에서 인스턴스변수를 사용하지 않는다면, static 을 붙이는 것을 고려한다.

    java 향상된 for문

    1. 배열for( 배열의 타입 변수명 : 배열) {//문장} 2. 컬렉션for( 컬렉션에 저장된 요소의 타입 변수명 : 컬렉션){//문장} ex)1. 배열int [] arr = {10,20,30,40,50}; 구 반복문for(int i=0; i

    java iterator 간단 사용법

    public static void main(String args[]) { LinkedList list = new LinkedList(); list.add(1); list.add(2); list.add(3); list.add(4); Iterator it = list.iterator(); while(it.hasNext()){ System.out.println(it.next()); } } boolean hasNext() : 읽어 올 요소가 남아있는지 확인Object next() : 다음요소를 읽어온다.,void remove() : next()로 읽어 온 요소를 삭제한다.

반응형