# CORS
자바 스크립트 -> 웹페이지 -> 서버에 응답요청해도되는지? -> 해도된다 ok신호 -> 응답요청 -> 응답 -> 자바스크립트에 데이터 전송
# HTTP messages
- HTTP의 특징 : 무상태성 -> HTTP로 클라-서버 통신과정에서 서로의 상태를 확인하지 않음
- 응답 / 요청 두가지의 유형 존재
* 구조
- start line : 항상 첫줄에 위치하며 요청이나 응답상태를 나태냄
- Http headers : 요청을 지정하거나 메세지에 포함된 본문을 설명하는 헤더 집단
- empty line : 헤더 / 본문 사이에 위치(구분)
- body : 요청/응답 과 관련된 데이터나 문서를 포함, 유형에 따라 선택적으로 사용
* 요청 Requests {
Start Line // 3요소
1. 수행할 작업(GET, PUT, POST 등)이나 방식(HEAD or OPTIONS)을 설명하는 HTTP method를 나타냄
2. 요청 대상(일반적으로 URL이나 URI) 또는 프로토콜, 포트, 도메인의 절대 경로는 요청 컨텍스트에 작성
origin 형식 : ?와 쿼리 문자열이 붙는 절대 경로
absolute 형식 : 완전한 URL 형식으로, 프록시에 연결하는 경우 대부분 GET method와 함께 사용
authority 형식 : 도메인 이름과 포트 번호로 이루어진 URL의 authority component
asterisk 형식 : OPTIONS 와 함께 별표() 하나로 서버 전체를 표현
3. HTTP 버전에 따라 HTTP message의 구조가 달라짐. 따라서 start line에 HTTP 버전을 함께 입력
Headers : 요청의 Headers는 기본 구조를 따르며 헤더 이름(대소문자 구분이 없는 문자열), 콜론( : ), 값을 입력
- General headers : 메시지 전체에 적용되는 헤더로, body를 통해 전송되는 데이터와는 관련이 없는 헤더
- Request headers : fetch를 통해 가져올 리소스나 클라이언트 자체에 대한 자세한 정보를 포함하는 헤더를 의미.
User-Agent, Accept-Type, Accept-Language과 같은 헤더는 요청을 보다 구체화. Referer처럼 컨텍스트를 제공하거나 If-None과 같이 조건에 따라 제약을 추가 가능
- Representation headers : 이전에는 Entity headers로 불렀으며, body에 담긴 리소스의 정보(콘텐츠 길이, MIME 타입 등)를 포함
Body
- 모든요청에 Body가 필요하지 않으며 GET, HEAD, DELETE, OPTIONS처럼 서버에 리소스를 요청하는 경우에는 본문이 필요하지 않음
- POST나 PUT과 같은 일부 요청은 데이터를 업데이트하기 위해 사용
- body의 종류 :
Single-resource bodies(단일-리소스 본문) : 헤더 두 개(Content-Type과 Content-Length)로 정의된 단일 파일로 구성
Multiple-resource bodies(다중-리소스 본문) : 여러 파트로 구성된 본문에서는 각 파트마다 다른 정보를 지님. 보통 HTML form과 관련
}
* 응답 Response {
Status line : 응답의 첫줄
1. 현재 프로토콜의 버전(HTTP/1.1)
2. 상태 코드 - 요청의 결과를 나타냄 (200, 302, 404 등)
3. 상태 텍스트 - 상태 코드에 대한 설명
- 예시) HTTP/1.1 404 Not Found.
Headers
- General headers : 메시지 전체에 적용되는 헤더로, body를 통해 전송되는 데이터와는 관련이 없는 헤더
- Response headers : 위치 또는 서버 자체에 대한 정보(이름, 버전 등)와 같이 응답에 대한 부가적인 정보를 갖는 헤더로, Vary, Accept-Ranges와 같이 상태 줄에 넣기에는 공간이 부족했던 추가 정보를 제공
- Representation headers : 이전에는 Entity headers로 불렀으며, body에 담긴 리소스의 정보(콘텐츠 길이, MIME 타입 등)를 포함하는 헤더
Body
- bodyd의 종류
Single-resource bodies(단일-리소스 본문) :
길이가 알려진 단일-리소스 본문은 두 개의 헤더(Content-Type, Content-Length)로 정의. 길이를 모르는 단일 파일로 구성된 단일-리소스 본문은 Transfer-Encoding이 chunked 로 설정되어 있으며, 파일은 chunk로 나뉘어 인코딩
Multiple-resource bodies(다중-리소스 본문) : 서로 다른 정보를 담고 있는 body
}
# API
- 클라이언트 <--> 서버간의 통신 프로토콜
- 웹 애플리케이션 아키텍쳐에서는 HTTP 프로토콜을 사용, 주고받는 메세지는 HTTP message라고 부름
- 서버가 클라이언트에게 리소스를 활용할 수 있도록 인터페이스를 제공하는것을 API라고함 // 메뉴판과 같음
* HTTP API 디자인
- HTTP API는 그저 리소스를 달라는 GET요청이 아닌 사용자관리 API는 사용자 추가요청(CREATE), 삭제요청(DELETE) 가능
- CRUD 각각의 행동과 일치하는 HTTP메서드의 종류가 존재
- GET조회 / POST추가 / PUT(PATCH)갱신 / DELETE삭제가 있음
'Study > 기타' 카테고리의 다른 글
AWS 로컬 < -- > EC2 파일 복사하기 (0) | 2023.03.18 |
---|---|
AWS 수동배포 (0) | 2023.03.18 |
AWS- IAM 사용자 추가 후 엑세스키 생성 (0) | 2023.03.14 |
AWS EC2 - 배포 자동화를 위한 사용설명 (0) | 2023.03.02 |
Html / Css (0) | 2022.11.17 |