티스토리 뷰

Development/Network

HTTP / HTTPS

김드랍 2017. 6. 28. 02:27


HTTP

- HyperText Tranfer Protocol ( 하이퍼 텍스트 전송 규약 )

- 웹 브라우저와 같은 응용프로그램을 통해 웹 클라이언트와 웹서버 사이 데이터를 전송하는 프로토콜

- 네트워크 패킷을 가로채 볼 수 있다면 내용이 그대로 보이게 되어 보안상 문제가 발생가능

- 애플리케이션 레벨의 TCP/IP기반 프로토콜

- 기본 포트 80


특징

Connectionless 

- 연결을 유지하지 않는 방식의 프로토콜


Stateless

- 요청을 독립적인 트랜잭션으로 취급하는 통신

- 이전요청과 다음요청간에 관계가 없기 때문에 저장공간을 동적으로 따로 할당할 필요가 없기 때문에 서버에서는 요청간 관계에 대해 고려할 필요없음

- 때문에 요청시 항상 해석


Request - Response

- request and reply 라고도 함

- 요청을 보내면 요청에대한 응답을 보내는 방식을 의미


HTTP 프로토콜 메소드

- head 

- trace

- put

- delete

- connect

- options

- get

- post


GET / POST

- GET 

- 데이터를 URL에 포함하여 전송

- 데이터에 한계가 있다 ( 최대 255자 )

- ASCII 형태만 허용

- 속도가 빠르다

- 서버에서 데이터를 불러올 때 주로 사용


- POST

- 메시지 본문에 데이터를 첨부하여 전송

- 데이터양 제한 없음

- 데이터 타입 제한 없음

- 속도 느림

- 서버의 데이터를 수정할 때 주로 사용


HTTP Response Status Code



Range


Status

Status Code

 Description 

 설명

 

1xx


 Information

 

 

사용자의 요청이 현재 처리되는 중

 

2xx


Success

200 

OK 

서버가 사용자의 요청을 정상적으로 처리함

204 

Not Content 

 요청을 정상적으로 처리 했지만 반환할 리소스 없음

응답에 대한 어떠한 엔티티 바디도 포함하지 않음

 

3xx


 Redirection

 301

Move Permanently 

요청된 리소스에는 새로운 URI가 지정되어 있기 때문에 새 URI를 사용함 

 302

Found

301과 유사하지만 일시적인 URI 이동 

303 

See Other 

 요청에 대한 리소스는 다른 URI에 있기 때문에 

GET메서드 사용해서 얻어와야함

 304

Not Modified 

요청한 리소스가 마지막 요청 이후 변경된 적이 없기 때문에 기존 클라이언트의 로컬 캐시 리소스를 사용하라고 응답

 

4xx


Client Error 

 400

Bad Request 

클라이언트의 요청 구문이 잘못됨

요청을 서버가 제대로 인식하지 못했을 경우를 의미하며 

브라우저는 이 응답을 200(OK) 응답과 동일한 형태로 취급 

 401

Unauthorized 

 요청 처리를 위해 HTTP 인증 정보가 필요함을 알려줌( 접근 허용 차단)

 403

Forbidden 

접근 금지 응답

서버가 클라이언트의 요청을 거부하고 있음 

 404

 Not Found

클라이언트가 요청한 리소스가 서버에 없음 

 405

Method Not Allowed 

 허용되지 않은 HTTP 메소드를 사용함

 
5xx

Server Error 

 500

Internal Server Error 

서버에 오류가 발생하여 요청 수행 불가능 

 503

Service Unavailable 

 서버가 일시적으로 요청을 처리할수 없음

(서버 과부하, 점검중)

 504

 Gateway Timeout

서브를 통하는 게이트웨이에 문제가 발생하여 시간이 초과됨 

 505

 Http Version Not Found

 해당 HTTP 버젼에서는 지원되지 않는 요청



HTTPS


- HTTP over SSL(Secure Socket Layer)

- HTTP 와 같은 통신 프로토콜이며 쓰임 또한 HTTP와 거의 흡사

- HTTP의 취약점을 보완하기 위해 주고받는 메시지를 암호화

- 공개키 암호화 방식(RSA 암호화 방식)

- 즉 중간에 패킷을 가로채도 암호화되어 있기 때문에 보안상 안전

- HTTP에 비해 많이 느리다

- 기본 포트 443


보안에 좋은 https만을 사용할 수 없는 이유

- https 암호화를 하려면 웹서버에 부하가 생기므로 모든 페이지를 https로 전송 불가능

- 암호화/복호화 할때 필요한 인증키(인증서)를 업체에서 구매해야하므로 비용이 만만치 않음





'Development > Network' 카테고리의 다른 글

[HTTP] 400 Bad Request와 403 Forbidden의 의미  (0) 2018.07.16
OSI 7 Layer  (0) 2017.09.04
Session & Cookie  (0) 2017.06.30
댓글