Http

세모네모동굴배이·2021년 4월 6일
0

HTTP(Hyper Text Transfer Protocol) 는
웹브라우저와 웹서버가 HTML로 작성된 웹페이지, 동영상, 음성 파일 등을
주고받기 위한 프로토콜(통신 규약)이다. : RFC2613
SSL로 암호화 하여 보안성을 확보한 것을 HTTPS 라 한다.

HTTP 통신

클라이언트가 서버에 요청 메시지 보내고
이에 대해 서버가 응답 메시지를 반환한다.
서버는 응답 메시지를 반환한 후에 초기 상태로 돌아간다.
이때 서버는 클라이언트 상태를 저장하지 않는다. 

HTTP : 기본적으로 80 번 포트 사용  : 8080 : 8088
TCP : 전송 계층 프로토콜
IP : 네트워크 계층 프로토콜 : 통신할 컴퓨터 결정 및 포트번호를 사용해서 
                         그 컴퓨터의 어떤 프로그램과 통신할지를 결정한다. 

HTTP 프로토콜
REQUEST 프로토콜 : 클라이언트 -> 서버로 요청
RESPONSE 프로토콜 : 서버 -> 클라이언트 응답

HTTP 요청 메시지

요청 행
요청 헤더
공백 행
메시지 본문

GET http://www.gilbut.co.kr HTTP/1.1

GET : 요청 메서드
http://www.gilbut.co.kr : URL
HTTP/1.1 : HTTP의 버전

요청 메서드는 송수신 방법을 뜻하며
GET, POST, PUT, DELETE 등

대부분 통신은 GET 메서드를 사용한다.
FORM 등을 사용해서 데이터를 전솔 할 때는 POST 메서드를 사용한다.

GET : 웹 서버에 페이지를 요청한다.
요청할 때 필요한 데이너는 URL에 덧붙여 보내며
텍스트 데이터만 전송할 수 있다.
파일업로드를 할 수 없다.
요청행에 데이터가 넘어간다 (Query String)
HTTP1.0 : 데이터의 크기가 512 byte 를 넘으면 않된다.
HTTP1.1 : 테이터의 크리가 아주 크다 (2기가) ~~
RESTfull : OPEN API

POST : 서버의 데이터를 갱신하거나 보내는 데이터의 양이 많을 때
요청할 때 필요한 데이터는 메시지 본문에 담아서 보내면
텍스트 데이터와 바이너리 데이터를 모두 보낼 수 있다.
파일업로드를 할 수 있다.

요청 헤더
요청 헤더에는 메시지의 제어 정보,
메시지 본문에 저장한 데이터 정보(데이터 종류나 문자코드)등이
텍스트 형식으로 저장된다.
헤더의 문자열은
Host : http:www.gilbut.co.kr 처럼
필드이름 : 필드내용을 쌍으로 구성한 필드의 집합을 구성된다.

메시지 본문
메시지 본문에는 보내는 데이터가 저장됩ㄴ다.
데이터 형식은 요청 헤더에 지정된 타입을 따른다.

HTTP 응답 메시지

응답 행
응답 헤더
공백 행
메시지 본문

응답 행
응답 행의 예
HTTP/1.1 200 OK

HTTP/1.1 : HTTP 버전
200 : 상태코드
OK : 보충 메시지

상태코드
200 : 요청 성공
400 : 클라이언트 오류 : 요청할 때 오류
401 : unauthorized : 인증이 되지 않음
403 : Forbidden : 엑세스가 허용되지 않음
404 : Not Found : 요청한 리소스를 차지 못함
408 : Request Timeout : 요청 시간을 초과함
500 : 서버 오류 : Internal Server Error : 서버 내부에서 오류가 발생
503 : Service Unavailable : 서비스를 일시적으로 사용할 수 없음

응답 헤더
응답 헤더는 메시지의 제어정보,
메시지 본문에 저장한 데이터 정보(데이터 종류나 문자코드)등이
텍스트 형식으로 저장된다.
메시지 본문
메시지 본문에는 받을 데이터가 담기며,
그 데이터 형식은 요청 헤더에 지정된 타입을 따릅니다.
HTTP 파일, CSS 파일, 자바스크립트 파일, 이미지 파일처럼
웹 페이지를 정의하는 테이터

Session Tracing

HTTP 프로토콜의 특징은 Connectionless 와 Stateless 가 있다.

Connectionless(비 연결지향)
클라이언트에서 서버에 요청을 보내면
서버는 클라이언트에 응답을 하고 접속을 끊는 특성이 있다.
(HTTP1.1 에서 Connection 헤더에 keep-alive 라고 설정하면
얼마간 커넥션을 유지할 수 있다.)
Stateless(상태정보유지안함)
HTTP통신은 요청을 응답하고 접속을 끊기 때문에
클라이언트 상태정보를 알 수 없다.
이를 Stateless 라고 한다.

쿠키

쿠키는 클라이언트 로컬에 저장되는 key=value 쌍의
작은 데이터 파일이다.

구성요소
쿠키이름, 쿠키값, 만료시간, 전송할 도메인명,
전솔할 경로, 보안연결여부, HttpOnly여부

서버에서 클라이언트의 로그인 요청의 유효성을 확인하고
응답헤더에 set-cookie:user=chrisjune을 추가하여 응답한다.

쿠키는
클라이언트에 최대 300개 까지 저장
서버 도메인 하나당 최대 20개 쿠기 저장
하나의 쿠키 값은 최대 4kb 까지 저장 가능

셰선

브라우저가 종료되기 전까지 클라이언트 요청을
유지하는 해주는 기술

서버에서 클라이언트의 로그인 요청의 유효성을 확인하고
unique한 id를 sessionid 이름으로 저장한다.

메일

testJsp/WebContent/WEB-INF/lib/log4j-1.2.17.jar
testJsp/WebContent/mail/main.jsp
testJsp/WebContent/mail/test_mail.jsp
testJsp/Java Resource/src/a.b.c.com.mail.MailAuth
testJsp/Java Resource/src/a.b.c.com.mail.MailSend

보안등급 낮추기
gmail.com 으로 로긴해서
계정관리 -> 보안 -> 보안등급 낮추기

0개의 댓글