在浏览器中输入www.qq.com,到看到腾讯网首页,经过了哪些步骤,分别使用了一些什么网络协议,有哪些优化手段来加速这个过程?

1、解析 URL:浏览器做的第一步就是解析 URL 得到里面的参数,将域名和需要请求的资源分离开来,从而了解需要请求的是哪个服务器,请求的是服务器上什么资源等等。

2、对 URL 进行解析之后,浏览器确定了目标服务器和文件名,接下来就需要根据这些消息封装成一个 HTTP 请求报文发送出去。

3. DNS 域名解析:获取 IP 地址封装好 HTTP 请求报文后,在正式还有一项准备工作没有做,那就是获取目标服务器的 IP 地址。基于DNS协议。

4、建立 TCP 连接:需要 TCP 通过三次握手为浏览器和服务器之间建立可靠的连接,保证双方都具有可靠的接收和发送能力。由于是HTTPS,三次握手阶段之后,还会有SSL握手协商加密使用的对称加密密钥。基于TCP协议

5、浏览器发送请求TCP 三次握手完成后,浏览器与目标服务器之间就建立了一个可靠的虚拟通道,于是浏览器就可以发送自己的 HTTP 请求。

6、负责传输的 IP 协议:TCP 在三次握手建立连接、四次握手断开连接、以及连接建立过程中的收发数据(TCP 报文段)等各阶段操作时,都是通过 IP 协议进行传输的,IP 协议将这些阶段的数据添加 IP 首部封装成 IP 数据报再进行传输。

7、使用 ARP 协议凭借 MAC 地址通信:在传输时,需要知道对方的MAC地址,这时候需要用到ARP协议。

8、服务器响应请求。

9、断开 TCP 连接浏览器和服务器都不再需要发送数据后,四次挥手断开 TCP 连接。

10、浏览器显示界面:浏览器接收到服务器返回的数据包,根据浏览器的渲染机制对相应的数据进行渲染。

应用层:HTTPS协议、DNS协议

传输层:TCP协议

网络层:ARP协议、IP协议

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
获取并下载https://v.qq.com/x/cover/mzc002005343uyn/p0046atcndk.html页面所有视频,需要进行以下步骤: 1. 使用Java的HttpURLConnection或HttpClient等网络请求库,模拟浏览器访问腾讯视频网站,获取视频页面的HTML源代码。 2. 分析HTML源代码,提取出视频的播放链接。 3. 分析播放链接,获取视频的真实地址。 4. 使用Java的IO流和文件操作,将视频文件下载到本地。 具体实现步骤如下: 1. 使用Java的HttpURLConnection或HttpClient等网络请求库,模拟浏览器访问腾讯视频网站,获取https://v.qq.com/x/cover/mzc002005343uyn/p0046atcndk.html页面的HTML源代码。 2. 分析HTML源代码,找到视频播放链接所在的标签,使用Java的正则表达式或解析HTML的库,例如Jsoup,提取出所有视频的播放链接。 ``` String html = "https://v.qq.com/x/cover/mzc002005343uyn/p0046atcndk.html"; // 视频页面链接 String videoUrlRegex = "https://[^\"]+.mp4"; // 视频地址的正则表达式 List<String> videoUrls = new ArrayList<>(); // 存放所有视频地址的列表 // 使用Jsoup解析HTML源代码,并提取出所有视频播放链接 Document doc = Jsoup.connect(html).get(); Elements videoElements = doc.select("video"); // 找到所有video标签 for (Element videoElement : videoElements) { String videoUrl = videoElement.attr("src"); // 获取video标签的src属性 if (videoUrl.matches(videoUrlRegex)) { // 验证是否是视频地址 videoUrls.add(videoUrl); } } ``` 3. 分析播放链接,获取视频的真实地址。由于腾讯视频的播放链接有一定的加密,需要使用浏览器开发者工具分析链接的参数和算法,并在Java程序模拟生成请求参数,然后发送HTTP请求获取真实地址。 4. 使用Java的IO流和文件操作,将视频文件下载到本地。获取到视频真实地址后,使用Java的IO流和文件操作,将视频文件从网络上下载到本地。 ``` for (String videoUrl : videoUrls) { URL url = new URL(videoUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); InputStream in = conn.getInputStream(); FileOutputStream out = new FileOutputStream("video.mp4"); // 保存视频的文件名 byte[] buffer = new byte[1024]; int len; while ((len = in.read(buffer)) != -1) { out.write(buffer, 0, len); } in.close(); out.close(); } ``` 需要注意的是,腾讯视频对于视频有一些限制,如播放链接有时效性等,需要在开发注意处理这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值