-
HTTP완벽가이드 스터디 1, 2장IT 2021. 4. 11. 16:50
1장
HTTP: 웹의 기초
- 통신: client <--http protocol--> server
- 리소스: 사용자가 원하(서버가 제공하는)는 자료
- MIME 미디어 타입 (Multipurpose Internet Mail Extenstions)
- ex) Content-type: image/jpeg (https://ko.wikipedia.org/wiki/MIME)
- URI (uniform resource identifier) 통합 자원 식별자 (주소)
- ex) scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
(https://ko.wikipedia.org/wiki/%ED%86%B5%ED%95%A9_%EC%9E%90%EC%9B%90_%EC%8B%9D%EB%B3%84%EC%9E%90)
- URL (uniform resource locator) 통합 자원 지시자
- URI와 URL의 차이 (URI는 URL의 상위개념)
(https://medium.com/@js230023/url-%EA%B3%BC-uri%EC%9D%98-%EC%B0%A8%EC%9D%B4-154d70814d2a) - URN (uniform resource name)
- METHOD
- 어떤 동작에 대한 정의
- GET: 특정 리소스의 표시를 요청합니다. GET을 사용하는 요청은 오직 데이터를 받기만 합니다.
- HEAD: GET 메서드의 요청과 동일한 응답을 요구하지만, 응답 본문을 포함하지 않습니다.
- POST: 특정 리소스에 엔티티를 제출할 때 쓰입니다. 이는 종종 서버의 상태의 변화나 부작용을 일으킵니다.
- PUT: 목적 리소스 모든 현재 표시를 요청 payload로 바꿉니다.
- DELETE: 특정 리소스를 삭제합니다.
- CONNECT: 목적 리소스로 식별되는 서버로의 터널을 맺습니다
- OPTIONS: 목적 리소스의 통신을 설정하는 데 쓰입니다.
- TRACE: 목적 리소스의 경로를 따라 메시지 loop-back 테스트를 합니다.
- PATCH: 리소스의 부분만을 수정하는 데 쓰입니다.
- 상태코드 (status)
- http 메시지 (https://developer.mozilla.org/ko/docs/Web/HTTP/Overview)
- 요청
GET / HTTP/1.1
Host: developer.mozilla.org
Accept-Language: fr
- 응답
HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT
ETag: "51142bc1-7449-479b075b2891b"
Accept-Ranges: bytes
Content-Length: 29769
Content-Type: text/html
<!DOCTYPE html... (here comes the 29769 bytes of the requested web page)
2장
URL과 리소스
scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
http://<host>:<port>/<path>?<searchpart>
- scheme: 어떻게 접근할지 알려준다 (https://tools.ietf.org/html/rfc1738#section-3.3)
- host:port: 서버위치
- path: 리소스 경로
- searchpart: 추가 정보
- fragment: 리소스 안쪽에 특정 위치
인코딩
- URL
- 문자나 특수문자는 인코딩되어 전송된다(해야한다) %기호로 시작해서 ASCII코드로 표현되는 16진수 숫자. 이스케이프 문자로 바꾼다.
- https://www.w3schools.com/tags/ref_urlencode.asp
- 문자제한
'IT' 카테고리의 다른 글
HTTP완벽가이드 스터디 5, 6장 (0) 2021.04.24 HTTP완벽가이드 스터디 3, 4장 (0) 2021.04.17 http patch method를 이용하여 우아하게 부분 수정하기. (0) 2021.04.09 spring data jpql 에서 GROUP_CONCAT function 사용하기. (0) 2021.04.08 java frameworks "simple-boot" open source project (자바 프레임워크) (0) 2021.03.07