HTTP(hypertext transfer protocol)와 WEB

citron03·2021년 10월 10일
0

네트워크

목록 보기
2/9

웹 페이지는 objects들로 구성되어 있다.
이 http objects들은 이미지, flash, Java applet, 동영상과 음원등이 있다.
웹 페이지는 기본적으로 HTTP 파일로 구성되는데, 이는 referenced objects들을 가지고 있다.
각 objects들은 URL로 지정될 수 있다.
💨 host name + path name

client와 server

client는 HTTP protocol을 이용하여 server에 web objects를 요청하고 받는다.
web server는 역시 HTTP protocol을 이용해 요청받은 objects를 response한다.

TCP

HTTP는 기본적으로 TCP를 사용하는데, 이는 UDP와는 다르게 reliable하기 때문이다.
우리가 웹 페이지를 요청하는데, loss가 있거나, 웹 페이지의 순서가 뒤죽박죽이거나, error가 발생하는 것을 원하지 않기 때문이다.
client가 데이터를 요청하면서 서버에 TCP 연결을 하게 되고(이때 socket을 만듦), port 80을 사용한다.
HTTP messages가 cilent가 사용한 브라우저와 web server사이에 교환되고, TCP연결이 종료된다.

💫 TCP 연결이 persistent한 HTTP도 있고 non-persistent한 HTTP도 있는데 지금 주로 사용되는 방식은 persistent HTTP이다.
persitent HTTP는 하나의 TCP연결로 여러개의 objects를 보낼 수 있기 때문이다.

* statless
HTTP는 기본적으로 사용자의 정보를 저장하지 않는다.
다만, 이는 매번 사이트에 접속할 때 로그인을 해야하는 등의 불편함이 있기에, '쿠키'를 이용해 사용자의 정보를 저장하기도 한다.
쿠키는 하나의 사이트에 하나의 번호를 가지고 이를 통해서 각 사이트에 대한 사용자의 state를 저장한다.
그리고 당연히도 이러한 쿠키는 개인정보를 담고 있기에 보안적인 측면을 고려하면 좋지 않은 부분도 있다.

HTTP response status codes

status codes는 server와 cilent의 response messages의 첫번째 줄에 나타난다.
이를 통해서 통신이 제대로 이루어졌는지 알 수가 있다.

  • 200 OK
    요청한 objects를 성공적으로 보냄. response messages의 뒤에 요청한 objects가 담겨있다.

  • 301 Moved Permanently
    요청한 objects가 이동되었다. response messages의 뒤에 이 objects의 새로운 위치가 지정되어 있다.

  • 400 Bad Request
    요청 messages를 server에서 이해하지 못했다.

  • 404 Not Found
    요청한 문서가 이 server에 존재하지 않는다.

  • 505 HTTP Version Not Supported
    HTTP의 버전이 server에서 지원되지 않는다.

  • 304 Not Modified
    과거의 이 문서를 요청했었고, 이 문서는 수정된 적이 없다.
    🔆 추가적으로 HTTP 프로토콜 필드에 if-Modified-Since가 생성된다.
    이를 통해서 문서가 수정되었는지 확인하고 새로 받아올지 결정한다.

profile
🙌🙌🙌🙌

0개의 댓글