*/*은 어떤 미디어 타입도 가능하다는 뜻이다. 만약 application/json이라고 하면 json데이터를 2진데이터로 받을 것이고, gzip이면 압축파일을 받을 것이고, text/plain이라고 하면 String을 받을 것이다. Show User-Agent 1995년 HTML 2.0이 나오기 전까지 HTML은 표준화되지 않았다. 당시 Netscape나 Microsoft 같은 벤더들은 웹제작자들이 좀 더 풍부하게 컨텐츠를 제공할 수 있도록 각자 매력적인 기능을 추가하고 있었다. 이에 따라 다양한 브라우저가 출시되기 시작했고, 최신 브라우저는 좀 더 화려한 HTML을 제공했다. 여러 브라우저가 출시되면서 웹제작자들은 제작한 컨텐츠가 다양한 브라우저에 모두 정상적으로 보일 수 있도록 대책이 필요했다. 그 중 하나는 가장 낮은 버전의 HTML을 제공하는 것이었고, 다른 하나는 브라우저의 버전을 탐지해 서버가 브라우제 따라 적합한 컨텐츠를 내려주도록 하는 것이었다. 당시에는 브라우저에서 스크립트가 가능하지 않았기 때문에, 서버에서 브라우저를 탐지해내기 위해 User-Agent 헤더가 생기게 됐다. 첫째, HTTP의 모든 형태는 HyperText Transfer Protocol입니다. HTTP는 ISO 또는 TCP/IP 모델의 응용 프로그램 계층 프로토콜입니다. 애플리케이션 계층 아래에 있는 HTTP를 찾으려면 아래 그림을 참조하십시오. HTTP는 월드 와이드 웹 (w.w.w) 및 브라우저에서 메시지 형식 및 전송 방법을 정의합니다. 따라서 HTTP 정의는 브라우저가 HTTP 명령을 수신할 때 취해야 하는 조치를 결정합니다. 또한 HTTP는 서버에서 데이터를 가져오기 위해 HTTP 명령을 전송하는 규칙을 정의합니다. 예를 들어 브라우저(Internet Explorer, Chrome, Firefox, Safari 등)에 url을 입력하면 실제로 서버에 HTTP 명령을 보냅니다. 그리고 서버는 적절한 명령으로 응답합니다. HTTP 방법:HTTP/1.1에 대한 몇 가지 메소드 세트가 있습니다(이것은 HTTP 버전입니다) GET, HEAD, POST, PUT, DELETE, CONNECT, OPTION 및 TRACE. 우리는 각 방법에 대해 자세히 설명하지 않고 대신 꽤 자주 볼 수 있는 방법에 대해 알게 될 것입니다. 와 같은 가져 오기: GET 요청은 웹 서버에서 데이터를 요청합니다. 이것은 문서 검색을 사용하는 주요 방법입니다. 우리는 이 방법의 실용적인 예를 볼 것입니다. 우편: POST 방식은 서버에 일부 데이터를 보내야 할 때 사용됩니다. HTTP는 Wiresahark입니다.HTTP가 어떻게 작동하는지 이해하기 위해 실용적인 것을 시도해 봅시다. 따라서 이 예에서 우리는 다운로드할 것입니다 "alice.txt"(서버에 있는 데이터 파일) ~에서 “gaia.cs.umass.edu” 섬기는 사람. 설정:
Wireshark의 HTTP 패킷 교환:HTTP로 들어가기 전에 HTTP가 포트 80과 TCP를 전송 계층 프로토콜로 사용한다는 것을 알아야 합니다. [다른 주제 토론에서 TCP를 설명할 것입니다]. 이제 해당 URL을 입력하고 브라우저에서 Enter 키를 누르면 네트워크에서 어떤 일이 발생하는지 봅시다. 다음은 스크린샷입니다. TCP 3-way handshake ——-> HTTP OK ——-> TCP Data [alice.txt의 내용] ——-> HTTP 확인 이제 HTTP GET 및 HTTP OK 패킷 내부에 무엇이 있는지 살펴보겠습니다. 참고: 다른 주제 토론에서 TCP 교환에 대해 설명합니다. HTTP 가져오기:TCP 3-way handshake[SYN, SYN+ACK, ACK 패킷]가 완료된 후 HTTP GET 요청이 서버로 전송되며 패킷의 중요한 필드는 다음과 같습니다. 1.요청 방법:가져오기 ==> 패킷은 HTTP GET 입니다. 2.요청 URI: /wireshark-labs/alice.txt ==> 클라이언트가 /Wireshark-labs에 있는 alice.txt 파일을 요청합니다. 3. 버전 요청: HTTP/1.1 ==> HTTP 버전 1.1입니다. 4. 수락: 텍스트/html, 애플리케이션/xhtml+xml, 이미지/jxr, */* ==> [클라이언트 측 브라우저]가 수락할 수 있는 파일 유형에 대해 서버에 알려줍니다. 여기서 클라이언트는 텍스트 유형인 alice.txt를 기대합니다. 5.허용-언어:ko-미국 ==> 허용되는 언어 표준. 6. 사용자 에이전트:Mozilla/5.0(Windows NT 10.0, WOW64, 트라이던트/7.0; rv: 11.0) 도마뱀붙이처럼 ==> 클라이언트 측 브라우저 유형. 인터넷 익스플로러를 사용했지만 항상 표시되는 경우/최대 시간에 Mozilla가 표시됨 7.인코딩 수락:gzip, 수축 ==> 클라이언트 측에서 허용된 인코딩. 8.호스트:gaia.cs.umass.edu ==> 클라이언트가 HTTP GET 요청을 보내는 웹 서버 이름입니다. 9.연결:연결 유지 ==> 연결은 현재 트랜잭션이 완료된 후 네트워크 연결이 열린 상태를 유지하는지 여부를 제어합니다. 연결 유형은 연결 유지입니다. 다음은 HTTP-GET 패킷 필드의 스크린샷입니다. HTTP 확인:TCP 데이터[content of alice.txt]가 성공적으로 전송된 후 HTTP OK가 클라이언트로 전송되고 여기에 패킷의 중요한 필드가 있습니다. 따라서 2와 3에서 200 OK를 얻었으며 이는 [HTTP GET] 요청이 성공했음을 의미합니다. 4.날짜:2019년 2월 10일 일요일 06:24:19 GMT ==> 서버에서 HTTP GET을 수신한 현재 날짜, GMT 시간. 다음은 HTTP OK 패킷의 다른 필드에 대한 스크린샷입니다. 이제 웹 서버에 있는 파일을 요청할 때 어떤 일이 발생하는지 압니다. 결론:HTTP는 우리가 일상생활에서 매일 사용하는 간단한 애플리케이션 프로토콜입니다. 그러나 안전하지 않아 HTTPS가 구현되었습니다. "S"는 보안을 의미합니다. 그래서 최대 웹 서버 이름은 http로 시작합니다.s://[웹사이트 이름]. 이는 귀하와 서버 간의 모든 통신이 암호화됨을 의미합니다. 이 HTTPS에 대해서는 향후 별도로 논의할 예정입니다. 📌 HTTP 프로토콜 소개HyperText Transfer Protocol 로 www 웹 상에서 정보를 주고 받을 수 있는 프로토콜입니다. 클라이언트로부터 웹 브라우저가 HTTP를 통해 서버로부터 정보를 요청하면 👉🏻 서버는 이 요청에 응답하여 필요한 정보를 사용자에게 전달해주는 역할을 합니다. 📌 요청에 포함되는 요청 Method(메소드)
📌 응답 코드- ERROR - SUCCESS 📌 Wireshark를 이용한 HTTP 패킷 분석이렇게 간단한 HTTP 샘플 패킷을 다운 받아 분석해 보겠습니다. 샘플 프로토콜 패킷 다운로드 사이트 우선 전체적인 통계를 살펴보기 위해 응답 코드를 확인했습니다. 각 프로토콜의 통계가 먼저이지만 HTTP 하나뿐인 패킷 샘플이기에 넘어갑니다. Requests 를 보면 어떠한 데이터가 요청되었는지 알 수 있습니다. 여기서는 png 이미지 파일입니다. HTTP Stream을 통해 살펴봐도 마찬가지로 클라이언트는 logo.png 이미지 파일을 요청하고, 서버는 200 OK 응답을 보내주었다는 것을 확인할 수 있습니다. 요청된 이미지 파일이 궁금하여 File - Export Objects - HTTP 로 저장해보니 이런 이미지가 나오는 것을 알 수 있습니다😎 |