HTTP 통신

이동현·2023년 3월 16일
0

코드 캠프 블로그

목록 보기
10/50

1. HTTP 통신

  • http 프로토콜을 암호화시킨 버전입니다. http 통신 시에는 브라우저와 웹서버 간의 주고받는 데이터가 노출되는 위험이 있습니다. 이러한 취약점을 보완하기 위해 데이터를 암호화시켜 주고받는 방법입니다

  • HTTP란 HyperText Transfer Protocol의 약자로 두 컴퓨터간에 텍스트 데이터를 주고 받는 길입니다.

  • HTTP 라는 길로 요청(request)과 응답(response) 2가지를 서로 주고 받을 수 있습니다.HTTP 요청(Request)과 응답(Response)

2. HTTP 요청(Request)과 응답(Response)


Back-end 컴퓨터는 응답할 때, HTTP 상태 코드 라는 것도 함께 보내줍니다.
HTTP 상태 코드는 100~ 599까지의 숫자로 구성되어 있습니다.
자주 볼 수 있는 HTTP 상태 코드는 성공(200), Front-end 에러(400), Back-end 에러(500) 등이 있습니다.
예를 들면, 요청에 성공하였으면 성공 메시지와 HTTP 상태 코드 200을 함께 보내줍니다.
다양한 HTTP 상태 코드(MDN): https://developer.mozilla.org/ko/docs/Web/HTTP/Status

3. HTTP의 역사

1) 초창기. HTTP 0.9

초기에는 버전 번호가 존재하지 않았지만,

이후에 다른 버전들과 구분하기 위해서 0.9라는 버전을 붙이게 되었습니다.

GET /mypage.html
0.9 버전은 단일 라인으로 구성 되었으며 메소드는 GET이 유일했습니다.

또한 상태코드들 역시 존재하지 않았으며 응답 파일 역시 단순하게 파일 내용 자체로만 구성되었습니다

A very Simple HTML page ## 2) 인터넷 부흥, HTTP 1.0 시간이 지나 1900년대에 인터넷 시장이 점차 커지기 시작하자 W3C가 만들어지며 HTML의 발전이 시작되었고,

이로 인해 HTTP 프로토콜이 개선되기 시작했습니다.

[

RFC 1945 - Hypertext Transfer Protocol -- HTTP/1.0

Hypertext Transfer Protocol -- HTTP/1.0 (RFC )

https://datatracker.ietf.org/doc/html/rfc1945

](https://datatracker.ietf.org/doc/html/rfc1945)

GET /mypage.html HTTP/1.0
User-Agent: NCSA_Mosaic/2.0 (Windows 3.1)

200 OK
Date: Tue, 15 Nov 1994 08:12:31 GMT
Server: CERN/3.0 libwww/2.17
Content-Type: text/html
<HTML>
A page with an image
  <IMG SRC="/myimage.gif">
</HTML>

HTTP 1.0에는 여러가지 특징들이 추가되어 좀더 융통성 있게 확장되었습니다.

버전 정보가 각 요청 사이내로 전송되기 시작했습니다.
상태 코드 라인 또한 응답의 시작 부분에 붙어 전송되어, 브라우저가 요청에 대한 성공과 실패를 알 수 있고 그 결과에 대한 동작을 할 수 있게 되었습니다.
HTTP 헤더 개념은 요청과 응답 모두를 위해 도입되어, 메타데이터 전송을 허용하고 프로토콜을 극도로 유연하고 확장 가능하도록 만들어주었습니다.
새로운 HTTP 헤더의 도움으로, HTML 파일들 외에 다른 문서들을 전송하는 기능이 추가되었습니다.
Content-Type : Content-Type은 리소스의 media type을 나타내기 위해 사용됩니다

상태코드

상태 코드는 3자리 숫자로 만들어져 있으며, 첫번째 자리는 1에서 5까지 제공됩니다.

첫번째 자리가 4와 5인 경우는 정상적인 상황이 아니기 때문에 사이트 관리자가 즉시 알아야 하는 정보입니다.

간략하게 상태코드에 대해 설명하자면 다음과 같습니다

1xx(정보) : 요청을 받았으며 프로세스를 계속 진행합니다.
2xx(성공) : 요청을 성공적으로 받았으며 인식했고 수용하였습니다.
3xx(리다이렉션) : 요청 완료를 위해 추가 작업 조치가 필요합니다.
4xx(클라이언트 오류) : 요청의 문법이 잘못되었거나 요청을 처리할 수 없습니다.
5xx(서버 오류) : 서버가 명백히 유효한 요청에 대한 충족을 실패했습니다.

0개의 댓글