HTTP

fe_sw·2022년 7월 26일
0

Network

목록 보기
2/2
post-thumbnail

HTTP (HyperText Transfer Protocol)

텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. 이렇게 규약을 정해두었기 때문에 모든 프로그램이 이 규약에 맞춰 개발해서 서로 정보를 교환할 수 있게 되었다.

HTTP 동작방식

클라이언트 즉, 사용자가 브라우저를 통해서 어떠한 서비스를 url을 통하거나 다른 것을 통해서 요청(request)을 하면 서버에서는 해당 요청사항에 맞는 결과를 찾아서 사용자에게 응답(response)하는 형태로 동작한다.

요청 : client -> server
응답 : server -> client```

HTML 문서만이 HTTP 통신을 위한 유일한 정보 문서는 아니다.
Plain text로 부터 JSON 데이터 및 XML과 같은 형태의 정보도 주고 받을 수 있으며, 보통은 클라이언트가 어떤 정보를 HTML 형태로 받고 싶은지, JSON 형태로 받고 싶은지 명시해주는 경우가 많다.

HTTP 특징

  • HTTP 메시지는 HTTP 서버와 HTTP 클라이언트에 의해 해석이 된다.
  • TCP/ IP를 이용하는 응용 프로토콜이다.
  • HTTP는 연결 상태를 유지하지 않는 비연결성 프로토콜이다.(이러한 단점을 해결하기 위해 Cookie와 Session이 등장하였다.)
  • HTTP는 연결을 유지하지 않는 프로토콜이기 때문에 요청/응답 방식으로 동작한다.

Request Method

  • GET : 자료를 요청할 때 사용
  • POST : 자료의 생성을 요청할 때 사용
  • PUT : 자료의 수정을 요청할 때 사용(전체 수정)
  • PATCH: 자료의 수정을 요청할 때 사용(일부 수정)
  • DELETE : 자료의 삭제를 요청할 때 사용

HTTP Request 구조

HTTP request 메세지는 크게 3부분으로 구성된다:

start line

  • 1.HTTP Method: GET, POST, PUT, DELETE, OPTIONS
  • 2.Request target: request가 전송되는 목표 uri.예를 들어 /login.
  • 3.HTTP Version:사용되는 HTTP 버젼. 버젼에는 1.0, 1.1, 2.0 등이 있다.

headers

  • request에 대한 추가 정보를 담고 있는 부분.[ex:request 메세지 body의 총 길이 (Content-Length) 등.]
  • Key:Value 값으로 되어있다 //key:value

body

  • 해당 reqeust의 XML, JSON, Multi Form 등의 데이터를 담는다.(get요청은 body가 없어서 query나 param으로 데이터를 보내야됨)

Status Code

  • 100 (조건부 응답) : 요청을 받았으며 작업을 계속한다.
  • 200(성공) : 요청을 성공적으로 처리하였습니다.
  • 300(리다이렉션) : 요청 완료를 위한 추가 작업이 필요합니다.
  • 400(클라이언트 에러) : 요청의 방식이 잘못되었거나 요청을 처리할 수 없습니다.
  • 500(서버 에러) : 서버 오류로 처리할 수 없습니다.

참고

0개의 댓글