본문 바로가기
  • hello world
Computer Science/Studying

HTTP · URI

by JJoajjoa 2023. 9. 1.

HTTP (Hypertext Transfer Protocol)

인터넷에서 데이터를 주고 받기 위한 프로토콜

클라이언트 - 서버 모델을 기반으로 동작하며, 웹 브라우저와 웹 서버 간의 통신에 주로 사용됨

 

  1. 요청과 응답
    HTTP는 클라이언트가 서버에서 요청(Request)을 보내고,
    서버는 클라이언트에게 응답(Response)을 반환하는 형식으로 동작함
  2. URL (Uniform Resource Locator)
    HTTP 요청은 URL을 사용하여 특정 리소스를 식별함
    URL은 프로토콜(http, https), 도메인, 포트 번호, 경로, 쿼리 등을 사용하여 구성됨
  3. 상태 코드 (Staus Code)
    HTTP에서 응답을 상태코드로 나타낼 수 있음
    해당 요청의 처리 결과를 코드로 나타냄
    →  200 OK : 성공적인 요청
    →  404 Not Found Error : 리소스를 찾을 수 없음
    →  500 Internal Server Error : 서버 내부 오류
  4. 메서드 (Method)
    GET : 리소스를 조회
    POST : 데이터 전송 및 리소스 생성
    PUT : 리소스 수정 및 생성
    DELETE : 리소스 삭제
  5. 상태정보유지
    HTTP 프로토콜 자체는 상태정보(Stateless)임
    각각의 요청과 응답이 독립적으로 처리됨
    사용자의 상태정보 관리를 위해 세션(Session), 쿠키(Cookie), 토큰(Token) 등과 같은 기술을 활용


 

URI : Uniform Resource Identifer

웹 상의 자원을 식별하기 위한 고유한 식별자

 

URI의 두 가지 주요 유형

  1. URL (Uniform Resource Locator): 자원의 위치
  2. URN (Uniform Resource Name): 자원의 이름

▶ URI는 URL과 URN을 포함하는 상위 개념!

 

 

 

URL (Uniform Resource Locator)

웹에서 특정 자원의 위치를 지정하는 데 사용

자원이 어디에 있는지를 알려주는 역할

사용자와 개발자 모두에게 의미있는 정보를 전달해야 함

웹 어플리케이션에서 리소스에 접근하기 위한 일관된 방법을 정의하는 과정임

URL 설계는 사용자 경험, 검색 엔진 최적화(SEO), 보안 등 다양한 측면을 고려하자구

  1. 경로
    경로는 계층적 구조를 가짐
    각 단계가 리소스의 계층구조와 일치하도록 만들자구
    → /products/electronics/mobilephone 과 같이
    → URL이 상위 카테고리부터 하위 카테고리까지 포함된 경로는 직관적이고 의미가 명확해야함
  2. 명명국룰
    동사보다 명사, 복수보다 단수
    →  /product/electronic/mobilephone 
    →  /user/kim
    대소문자 일관성
    →  URL은 대소문자를 구별하기 때문에
    →  대부분 웹서버도 대소문자를 구별하기 때문에
    →  일관성을 위해 소문자 또는 대문자만 사용하는 것이 권장됨
    하이픈(-) 사용
    →  단어 사이에 - 넣어서 가독성을 높임
    →  언더바(_), 스페이스( ) 도 가능
    →  하이픈 권장
    →  /product/electronic/mobile-phone
  3. 쿼리 문자열
    필터링, 정렬, 검색과 같은 추가 매개변수가 필요한 경우 쿼리 문자열(query string)을 활용할 수 있음
    →  /product?categort=eletronic&sort=price
  4. RESTful 원칙
    리소스를 식별하기 위해 각 리소스마다 고유한 식별자(ID)가 포함되어야 함
    →  메서드 사용, 계층구조 같은것도 RESTfull 원칙 중에 있음

 

▶ 구성요소

  • 프로토콜: http, https, ftp 등 (예: https://)
  • 호스트: 자원이 위치한 서버의 도메인 이름 또는 IP 주소 (예: www.example.com)
  • 포트 번호: 선택 사항이며, 서버가 사용하는 포트를 지정 (예: :80)
  • 경로: 서버 내에서 자원이 위치한 경로 (예: /path/to/resource)
  • 쿼리 문자열: 선택 사항이며, 추가 매개변수를 포함 (예: ?key1=value1&key2=value2)
  • 프래그먼트 식별자: 선택 사항이며, 자원 내 특정 부분을 가리킴 (예: #section1)

 

 

 

'Computer Science > Studying' 카테고리의 다른 글

데이터 모델 설계  (0) 2023.10.26
데이터베이스 설계  (0) 2023.10.26
API · REST API  (0) 2023.10.04
공부중 01  (0) 2023.09.18
웹 - 네트워크 - 인터넷 - 서버 - 프로토콜  (0) 2023.08.30