day 16 http 주고받는 과정

2021. 8. 9. 22:49·강의/부캠 안드로이드 학습정리

https://velog.io/@doomchit_3/Internet-HTTP-%EA%B0%9C%EB%85%90%EC%B0%A8%EB%A0%B7-IMBETPY

 

[Internet] HTTP? 개념잡기 통신과정-IMBETPY

⚔ HTTP란? 대량의 정보가 흐르는 곳이라면 언제나 효율적인 교류를 위한 규칙이 존재한다. 예를들어 주식시장에서 거래를 하고 싶다면 이름, 계좌, 거래일자, 금액 등 정해진 규칙을 지켜 거래를

velog.io

 

https://goodgid.github.io/HTTP-Communicate-Process/

 

HTTP을 사용한 통신 과정

Index

goodgid.github.io

 

DNS로 url 이름가지고 ip찾는거랑 네트워크 계층이랑 연결되니까 뭔가 재밌다.

 

https://velog.io/@hwi_chance/Kotlin-10%EC%9E%A5.-%EC%95%B1-%EA%B0%9C%EB%B0%9C-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC

 

[Kotlin] 10장. 앱 개발 - 네트워크

이것이 안드로이드다 with 코틀린(고돈호 지음)으로 공부한 내용 정리

velog.io

 

 

 

https://www.york.ac.uk/teaching/cws/wws/webpage1.html

 

webpage1

STARTING . . . There are lots of ways to create web pages using already coded programmes. These lessons will teach you how to use the underlying HyperText Markup Language - HTML. HTML isn't computer code, but is a language that uses US English to enable te

www.york.ac.uk

 

위 서버 ip가 168.126.63.1이라 wire shark에서도 168.126.63.1이 찍힌다.

밑 왼쪽이 16진수인건 알겠는데 오른쪽이 뭔지 모르겠음. 두고두고 수정하거나 글 쓰면서 분석해봐야 할듯.

 

 


jsoup 이라는게 있어서 html의 tag들을 element 단위로 불러오는게 있다.

 

System.currentTimeMillis()
val html = Jsoup.parse(output.toString())
val tags = html.select("img, script")
when (src.split(".").last()) {
                "png", "gif", "jpg" -> imageList.add(src.split("/").last())
                "css", "js" -> codeList.add(src.split("/").last())
            }

 

이미 불러왔던 페이지를 한번 더 불러오면 캐시된걸 불러와서 출력표시가 조금 다르다.

 

 

string을 많이 불러올경우 stringbuilder를 사용하는게 메모리적으로 효율적이다.

set으로 하는것도 있지만 list의 distinct().count() 로 하는 방법도 있음.

 

//각 tag마다 따로 처리
    private fun downloadFromTag(tagName: String, tags: Elements) {
        when (tagName) {
            "script" -> {
                tags.forEach {
                    download(it.attr("src"), false)
                }
            }
            "img" -> {
                tags.forEach {
                    download(it.attr("src"), false)
                }
            }
            "link" -> {
                tags.forEach {
                    download(it.attr("href"), false)
                }
            }
        }
    }

하는 방법도 있음.

 

http 받는걸 비동기로도 받을 수 있음. 여기선 굳이 필요없었지만 유용할 듯.

/**
     * http 리퀘스트를 보내고 response 받는 함수
     * await 을 통해 비동기 리턴값 받음
     */
    private suspend fun fetchUrl(url: String): HttpResponse<String> {
        totalFetchCount++
        val uri = URI(url)
        val request = HttpRequest.newBuilder().uri(uri)
            .build()
        val response = httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString())
        return response.await()
    }

'강의 > 부캠 안드로이드 학습정리' 카테고리의 다른 글

day 18 SQL DB 만들기  (0) 2021.08.12
day 17. 안드로이드 view 만들기  (0) 2021.08.10
커피타임  (0) 2021.08.06
day 14. 본격적인 비동기화 혼합 사용과 클래스 다이어그램의 중요성  (0) 2021.08.06
day 13. 네트워크 지식들..  (0) 2021.08.04
'강의/부캠 안드로이드 학습정리' 카테고리의 다른 글
  • day 18 SQL DB 만들기
  • day 17. 안드로이드 view 만들기
  • 커피타임
  • day 14. 본격적인 비동기화 혼합 사용과 클래스 다이어그램의 중요성
용나리
용나리
  • 용나리
    티스토리 블로그
    용나리
  • 전체
    오늘
    어제
    • 분류 전체보기 (333)
      • 과거의 것들 (93)
        • AI Tech boostcamp (92)
      • 생각정리(고찰) (2)
      • 기술 글 (0)
      • 코딩테스트 (4)
        • C++ (0)
        • Python (4)
      • CS (121)
        • 컴퓨터 시스템 (4)
        • 코틀린 인 액션 (13)
        • 김영한 스프링 강의 (104)
      • 일지 남기기용 (11)
        • 운동 (10)
      • 개발 배포 해보기 (1)
      • 프로그래밍 언어 및 기타 (32)
        • Spring Boot (9)
        • Python (9)
        • Kotlin (1)
        • Flutter (2)
        • SQL (4)
        • Docker (3)
        • 공통 (4)
      • os (4)
        • Linux (4)
      • 기술 (17)
        • PyTorch (6)
        • Computer Vision (6)
        • NLP (1)
        • 기타 (4)
      • 제품 후기 (0)
      • 게임 (0)
        • Human Resource Machine (0)
      • 강의 (26)
        • fullstackdeeplearning_sprin.. (9)
        • 부캠 안드로이드 학습정리 (17)
      • 개인 메모 (10)
      • IT 기타 (5)
      • 논문 읽기 연습 (5)
        • Computer Vision (1)
        • NLP (0)
        • 공통 (2)
        • 그냥 메모 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬 실행경로
    pip install killed
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
용나리
day 16 http 주고받는 과정
상단으로

티스토리툴바