2021-11-03大数据学习日志——数据埋点+网络爬虫——后端开发入门

本文详细介绍了从HTTP协议基础到Web后端开发,包括Python搭建静态Web服务器、Flask框架的使用、处理跨域请求,以及数据埋点的概念、形式和实践。通过学习,读者可以掌握动态资源请求处理、日志使用、数据埋点方案以及埋点验证流程。内容覆盖了从基础概念到实际操作,适合初学者入门。
摘要由CSDN通过智能技术生成

01_mini-web

本章节学习目标

  • 能够知道Web开发流程
  • 能够知道使用web应用程序处理客户端的动态资源请求操作
  • 能够知道路由列表的实现
  • 能够知道装饰器方式的添加路由
  • 能够知道logging日志的使用

本章节常用单词

  • request 英 [rɪ'kwest] 请求;需要
  • response 英 [rɪ'spɒns] 响应;反应;
  • route 英 [ruːt] 按某路线发送 ; 路由
  • template 英 ['templeɪt; -plɪt] 模板,样板
  • source 英 [sɔːs] 来源;水源;

1.1 HTTP 协议

学习目标

  • 常握 HTTP 协议中 URL 地址、请求报文和响应报文的基本格式

1.1.1 HTTP 协议简介

Web应用程序开发主要是建立在 B/S 架构模式下,即通常基于浏览器作为客户端通过URL去请求访问Web服务端,Web服务端处理对应请求之后,给客户端返回响应数据,客户端根据响应数据进行页面的解析和数据的展示。

在Web客户端和服务端通信的过程中,其数据的传输和响应遵循HTTP协议。

HTTP协议是 Hyper Text Transfer Protocol【超文本传输协议】的缩写,是用于从万维网【WWW:World Wide Web 】服务器传输超文本到本地浏览器的传送协议。

HTTP是一个属于应用层的协议,于1990年被提出,基于TCP/IP通信协议来传递数据(HTML 文件、图片文件、查询结果等)。

(1) HTTP协议之URL

Web应用程序中,客户端需要通过URL来向Web服务器发送请求,下面我们来看一个完整的URL地址:

http://movie.douban.com:80/annual/2019?source=navigation

对于上面的这个URL地址,其主要分为以下几个部分:

URL部分 说明
http http是协议部分,表示遵循http协议的请求,常见的协议还有:https
movie.douban.com 域名部分,域名和IP是对应的,可以换成对应服务器的IP,只不过域名
更容易记忆
80 端口部分,可以省略,默认就是访问80端口,如果是https协议,默认
访问443端口
/annual/2019 资源路径部分,表明要请求的是服务主机上的什么资源
?source=navigation 查询参数部分,传递一些请求参数,也叫查询字符串数据

(2) HTTP协议之请求报文

浏览器在发送http请求的过程中,其实给对应Web服务端发送的是HTTP请求报文,其具体协议格式如下:

下面是一个客户端请求时发送的HTTP请求报文

GET /annual/2019?source=navigation HTTP/1.1\r\n
Host: movie.douban.com
Connection: keep-alive\r\n
Pragma: no-cache\r\n
Cache-Control: no-cache\r\n
Upgrade-Insecure-Requests: 1\r\n
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6)\r\n
Accept: text/html,application/xhtml+xml,application/xml\r\n
\r\n

一个HTTP请求报文分为以下4个部分

  • 请求行:用来说明请求方式、要访问的资源地址以及所使用的HTTP版本

    GET /annual/2019?source=navigation HTTP/1.1\r\n
  • 请求头:紧接着请求行之后的部分,用来说明服务器要使用的附加信息

    Connection: keep-alive\r\n
    Pragma: no-cache\r\n
    Cache-Control: no-cache\r\n
    Upgrade-Insecure-Requests: 1\r\n
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6)\r\n
    Accept: text/html,application/xhtml+xml,application/xml\r\n
  • 空行:请求头部后面的空行是必须的,即使第四部分的请求数据为空,也必须有空行

    \r\n
  • 请求体:可选部分,请求时所要向服务端传递的数据,上面的例子中没有请求数据

(3) HTTP协议之响应报文

Web服务端在处理完浏览器的请求之后,给浏览器返回的是HTTP响应报文,其具体协议格式如下:

下面是一个web服务端响应时的HTTP响应报文

HTTP/1.1 200 OK\r\n
Date: Mon, 14 Sep 2020 07:24:14 GMT\r\n
Content-Type: text/html; charset=utf-8\r\n
Transfer-Encoding: chunked\r\n
Connection: keep-alive\r\n
Keep-Alive: timeout=30\r\n
Vary: Accept-Encoding\r\n
Content-Encoding: gzip\r\n
\r\n
<html>
    <head>
        ...
    </head>
    <body>
        ...
    </body>
</html>

一个HTTP响应报文分为以下4个部分

  • 响应行:主要包括使用的HTTP协议版本、响应状态码和状态码描述

    HTTP/1.1 200 OK\r\n
  • 响应头:紧接着响应行之后的部分,用来说明给客户端返回的一些附加信息

    Date: Mon, 14 Sep 2020 07:24:14 GMT\r\n
    Content-Type: text/html; charset=utf-8\r\n
    Transfer-Encoding: chunked\r\n
    Connection: keep-alive\r\n
    Keep-Alive: timeout=30\r\n
    Vary: Accept-Encoding\r\n
    Content-Encoding: gzip\r\n
  • 空行:响应头部后面的空行是必须的,即使第四部分的响应体数据为空,也必须有空行

    \r\n
  • 响应体:可选部分,web服务端给客户端返回的响应主体数据

    <html>
        <head>
            ...
        </head>
        <body>
            ...
        </body>
    </html>

1.2 查看HTTP协议的通信过程

学习目标

  • 能够使用谷歌浏览器的开发者工具查看HTTP协议的通信过程

1.2.1 谷歌浏览器开发者工具的使用

首先需要安装Google Chrome浏览器,然后Windows和Linux平台按F12调出开发者工具, mac OS选择 视图 -> 开发者 -> 开发者工具或者直接使用 alt+command+i 这个快捷键,还有一个多平台通用的操作就是在网页右击选择检查

开发者工具的效果图:

开发者工具的标签选项说明:

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值