일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- anyMatch
- 자바ORM표준프로그래밍
- gitreset
- ERROR TYPE : org.apache.ibatis.binding.BindingException
- 무상태프로토콜
- 멱등활용
- hibernate.dialect
- HTTP3
- Git
- 캐쉬가능
- gitrevert
- fixedDelay
- 매핑정보가없는필드
- org.apache.ibatis.binding.BindingException
- SpringBoot
- Invalid bound statement (not found)
- 김영한JPA
- 네이버로그인API
- http
- JPA
- RFC723x
- 네이버 연결된 서비스
- HTTPMESSAGE
- 데이터베이스 방언
- Transaction not successfully started
- @Entity
- DB방언
- @Table
- KAKAOLOGINAPI
- initialDelay
- Today
- Total
목록IT/HTTP (34)
twocowsong
클라이언트 서버 구조 HTTP는 클라이언트가 요청메세지를 전송후 대기한다. 서버에 대한 응답결과를 받아서 사용한다. 비즈니스 로직과 데이터는 서버에 두고 클라이어언트는 UI에 집중한다. 이렇게되면 클라이언트와 서버는 각각 발전할수있게 된다.
HTTP 기본 모든것이 HTTP HTTP (HyperText Transfer Protocol)에 담아서 모든것을 전송한다. HTML, TEXT, 이미지, 음성, 영상, 파일, JSON, XML 거의 모든 형태의 데이터 전송이 가능하다. 서버간의 데이터를 주고 받을 때도 대부분 HTTP를 사용한다. HTTP 역사 • HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X • HTTP/1.0 1996년: 메서드, 헤더 추가 • HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전 -> HTTP/1.1에 가장 많은 기능이 추가되어있으며 그 뒤 버전은 성능 추가버전이다. -> RFC2068 (1997) -> RFC2616 (1999) -> RFC7230~7235 (2014) ->..
웹 브라우저에 요청과 흐름 위 URL로 데이터를 요청할 경우 IP:PORT를 조회 후 HTTP 메세지를 만들어서 요청한다. HTTP 메세지를 자세히보면 위와 같다. 1. 브라우저에서 HTTP 메시지를 생성 2. 3way handshake 확인 후 구글 서버랑 연결한다. 그리고 데이터를 전달하기위해 OS에 데이터를 전달. 3. 전달 데이터에 TCP/IP 패킷을 씌운뒤 네트워크를 통해 전송된다. 전송된 패킷을 상세히보면 위와 같다. 인터넷망으로 전송된 패킷은 수많은 노드를 거쳐 목적지 IP까지 도달하게된다. 구글 서버는 도착한 패킷에 TCP/IP 패킷을 버린뒤 HTTP 메세지만 가지고 사용한다. ex) q=hello&hl=ko 로 데이터가 들어오면 hello 검색을 한뒤 한국어로 데이터를 조회한다. 구글서버..
URI URI (Uniform Resource Identifier) URI : 리소스를 식별한다. (자원자체를 식별한다.) URL : 리소스의 위치 URN : 리소스의 이름 ex) 홍길동이 서울시 중랑구 ~ 에 산다. URL : 중랑구 ~ 에 찾아가면 홍길동을 찾을수 있다. URN : 홍길동 이름만 찾을수 있다. 대부분 URL을 많이 사용한다. URN이라는것은 있다는것만 알고 넘어가자. URI 단어 뜻 Uniform : 리소스 식별하는 통일된 방식 Resource : 자원, URI로 식별 할 수 있는 모든 것 Identifier : 다른 항목과 구분하는데 필요한 정보 URL, URN URL - Locator : 리소스가 있는 위치를 지정 URN - Name : 리소스에 이름을 부여 위치는 변할수 있지만,..
DNS IP는 외우기 힘들 뿐더러 변경될 수 있다. 그렇기에 DNS(Domain Name Service)를 사용하여 원하는 IP로 이동할 수 있습니다. DNS 서버에 도메인을 등록 하면 요청한 도메인의 IP를 리턴해준다.
PORT 다양한 서비스를 이용중인 경우 한개의 IP로 여러개의 패킷이 들어온다. 여러개의 패킷이 들어오면 구분할때 PORT를 이용하여 구분한다. TCP 패킷을 다시확인해보면 출발지, 목적지의 PORT를 같이 보내는것을 확일 할 수 있다. (TCP/IP 패킷으로 합쳐서 적겠습니다.) 한개의 IP에서 서비스 이용시 위와 같은 그림이 그려집니다. 게임 포트는 8090, 화상통화는 21000, 웹브라우저는 10010으로 포트로구분하여 패킷을 받아 사용합니다. ex) IP가 아파트라면 PORT는 몇동 몇호를 생각하시면 됩니다. PORT : 0 ~ 65535 할당이 가능 하며 0 ~ 1023 범위는 잘 알려진 포트로 사용하지않는 것이 좋습니다.
UDP UDP는 기능이 없으며 하얀 도화지에 비유한다. IP와 거의 같으며 + PORT + 체크섬 정도만 추가된다. PORT : 하나의 IP에서 여러가지 어플리케이션을(게임, 음악 등등..) 사용한다면 여러 패킷이 목적지를 구분 할 수있는 방법은 PORT이다. UDP의 장점 TCP의 장점은 안정적이기 때문에 속도가 느리다. 3way handshake, 순서보장 등. 안정적인 측면이 높으며 패킷단위도 커지고 전송속도를 빠르게 만들기가 어렵다. TCP는 많이 사용중이고 최적화 하기에도 어렵다. 그런데 자신이 더 최적화를 할 수 있다면 TCP는 그대로 사용하고 UDP를 가지고 최적화를 진행하면된다.
TCP 1. 친구에게 Hello, world! 메세지를 보냈다. 2. 소켓 라이브러리를 통해 메세지가 어플리케이션에서 출발한다. 3. OS에서 메세지에다가 TCP 패킷을 추가한다. 4. 메세지에다가 IP 관련 정보를 추가한다. 5. 네트워크를 통해서 나갈때 Ethernet Frame 정보를 추가한다. (인터넷 맥주소 등등.. 포함) 위처럼 내용대로 완성된 패킷은 아래와 같다. IP 정보로 인해 출발지에서 목적지까지 패킷이 전송되며 TCP 정보로 인해 IP 문제였던 순서, 검증이 해결이된다. 그리고 전송데이터(hello, world!)가 전송된다. 그러면 TCP에는 어떠한 특징이 있을까? TCP (Transmission Control Protocol) 특징 TCP : 전송제어 프로토콜 1. 연결지향 - T..