카테고리 없음

[Network] HTTP 시작, header, body

321 2021. 5. 27. 10:34

 
 

 

HTTP시작라인 

  • 요청라인(시작라인) : 예시 ) GET /user/test.htm HTTP/1.1
    • GET | POST | PUT | DELETE 사용가능
  • 상태라인(시작라인) 예시 ) HTTP/1.1 200 OK
    • 1xx : Informational - 임시적인 응답 계속진행하라는 의미
    • 2xx : Success - 성공적으로 수신, 해독됨
    • 3xx : Redirection - 추가 동작 필요
    • 4xx : Client Error - 메시지 내용자체가 잘못됨, 금지된 영역에 대한 접근요청 등
    • 5xx : Server Error - 메시지내용은 이상x , 서버 쪽 사정에 의해 메시지처리에 문제 생김

 

HTTP 헤더

기본형태 - 필드이름 : 필드값 <CR><LF>

  • Accept :
    • 클라이언트에서 사용가능한 미디어타입(요청메시지에만 사용 가능)
    • ex) Accept : Audio
  • Accept-Charset :
    • 응답메시지에 사용될 수 있는 문자코드
  • Accept-Encoding :
    • 웹브라우저에서 인식할 수 있는 코딩방식
  • Accept-Language :
    • 웹브라우저에서 인식할 수 있는 언어
  • Allow :
    • 웹문서에서 사용가능한 HTTP메서드
    • ex) Allow : GET, HEAD, PUT
  • Content-Encoding :
    • 메시지의 바디 부분에 사용된 코딩 방식
    • ex) Content-Encoding : gzip
  • Content-Length :
    • 메시지 바디의 크기를 수신 측에게 바이트단위로 알려준다.
    • ex) Content-Length : 4021
  • Date :
    • 메시지 생성된 시각
    • ex) Date : 
  • Expires :
    • 응답 메시지의 유효기간
    • ex) Expires : 
  • From :
    • 요청 메시지를 보낸 사용자의 Email
    • ex) From : example@gnail.com
  • Host :
    • 웹브라우저가 요청하는 자원이 들어있는 호스트(서버), HTTP 1.1로 동작하면 반드시 포함되는 헤더
    • ex) Host : www.ddd.com
    • 요청 시작라인의 /user/test.htm와 합쳐짐 ==> www.ddd.com/user/test.htm
  • If-Modified-Since :
    • 웹브라우저가 요구하는 웹문서에 대해 이 헤더에 지정되어 있는 시각 이후에 수정된 경우에만 다시 제공해 준다.
    • 요청메시지에만 포함될 수 있는 헤더
    • 지정시각 이후에 변경되지 않은 웹문서는 304 응답코드만 웹브라우저에 보냄
    • ex) If-Modified-Since : Thu, 21 April 2021 14:00:00 GMT
  • Location 
    • 서버는 클라이언트의 HTTP요청에 들어있는 Request-URI의 위치가 다른 주소로 이동되었을 경우 이동된 위치를 이 헤더에 넣어서 보내준다.
    • 클라이언트(웹브라우저)는 이 헤더를 보고 새로운 주소로 다시 HTTP연결을 시도할 수 있다.
    • ex) Location : http://www.ddd.co.kr/pub/users/new.htm
  • Server
    • 현재 서버가 사용하는 웹서버소프트웨어에 대한 정보를 담고 있다.
    • 응답메시지에만 포함될 수 있는 헤더
    • ex) Server : Apache/4.0
  • User-Agent
    • 사용자의 웹브라우저에 대한 정보를 나타낸다
    • ex) User-Agent : MSIE/9.0  (마이크로소프트 Internet Explorer 9.0)
  • WWW-Authenticate
    • Authorization헤더와 함께 사용되어 HTTP보안을 위한 인증기능 제공.

 
 
참고 : TCP/IP기초와 JAVA/C#을 활용한 네트워크 프로그래밍 (카오스북)