100%를 한번에 바꾸는건 어려워도 1%를 100번 바꾸는건 쉽다.

생각정리 자세히보기

개발/WEB

[WEB] HTTP는 무엇인가?

dc-choi 2020. 5. 26. 18:35
반응형

1. HTTP의 동작방식

1) 서버/클라이언트 모델을 따르고 있으며, 포트번호는 80번을 사용한다.

 

2) 장점

          불특정 다수를 대상으로 하는 서비스에는 적합.

          클라이언트와 서버가 계속 연결된 형태가 아니기 때문에 최대 연결 수보다 훨씬 많은 요청과 응답을 처리.

 

3) 단점

          연결을 끊어버리기 때문에, 클라이언트의 이전 상황을 알 수가 없다.

          이러한 특징을 무상태(Stateless)라고 말하며 정보를 유지하기 위해서 Cookie와 같은 기술이 등장.

 

1. request

 

Head

요청 메서드 : GET, PUT, POST, PUSH, OPTIONS 등의 요청 방식이 온다.


요청 URI : 요청하는 자원의 위치를 명시한다.


HTTP 프로토콜 버전 : 웹 브라우저가 사용하는 프로토콜 버전이다.

 

GET : 정보를 요청하기 위해서 사용 (SELECT)
POST : 정보를 밀어넣기 위해서 사용 (INSERT)
PUT : 정보를 업데이트하기 위해서 사용 (UPDATE)
DELETE : 정보를 삭제하기 위해서 사용 (DELETE)
HEAD : (HTTP)헤더 정보만 요청한다. 해당 자원이 존재하는지 혹은 서버에 문제가 없는지를 확인하기 위해서 사용
OPTIONS : 웹서버가 지원하는 메서드의 종류를 요청
TRACE : 클라이언트의 요청을 그대로 반환한다. 예컨데 echo 서비스로 서버 상태를 확인하기 위한 목적으로 주로 사용

 

Content-Type과 Body
1. form 형태 : URL Encoded 방식

2. json 형태

3. 멀티파트 형태 : 이진파일 넘길 때 사용, 하나의 메세지 바디에 파트를 나눠서 작성
                        multipart/form-data를 이용하여 이진파일을 전송한다.

 

2. response

 

Head 

서버 버전
상태 코드
상태 메세지 : HTTP/1.1 200 OK
Content-Type : 바디 데이터의 타입
Content-Length : 바디 데이터 크기
Set-Cookie : 쿠키 설정
ETag : 엔티티 태그

 

상태 코드
1xx: 정보

2xx: 성공
200 => OK. 요청 성공, GET, PUT
201 => Created. 생성 요청 성공, POST
202 => Accepted. 요청 수락(처리 보장X)
204 => 성공했으나 돌려줄게 없음, DELETE

3xx: 리다이렉션
300 => Multiple choices. 여러 리소스에 대한 요청 결과 목록
301,302,303 => Redirect. 리소스 위치가 변경된 상태
304 => Not Modified. 리소스가 수정되지 않았음

4xx: 클라이언트 오류
400 => Bad Request. 요청 오류
401 => Unauthorized. 권한없음
403 => Forbidden. 요청 거부
404 => Not Found. 리소스가 없는 상태
409 => Conflict. 충돌

5xx: 서버 오류
500 => Internal Server Error. 서버가 요청을 처리 못함
501 => Not Implemented. 서버가 지원하지 않는 요청
503 => Service Unavailable. 과부하 등으로 당장 서비스가 불가능한 상태

 

Content-Type과 Body
text/plain, text/html
application/xml, application/json
image/png, image/jpg
audio/mp3, video/mp4

2. URL (Uniform Resource Locator)

특정 웹 서버의 특정 파일에 접근하기 위한 경로 혹은 주소

 

 

반응형

'개발 > WEB' 카테고리의 다른 글

[WEB] HTML tags  (0) 2020.05.14
[WEB] 브라우저의 동작 방식  (0) 2020.05.09
[WEB] WAS란?  (0) 2020.05.06
[WEB] 웹 서버란?  (0) 2020.05.06