1、应用概念

  • 应用层(Application Layer):将原始信息进行规范化描述,进而通过标准化接口与传输层对接
  • 传输层(Transport Layer):实现信息的切分和重组,以及应用程序间的对接
  • 网络层(Network Layer):为信息添加指向目的地的IP地址
  • 数据链路层(Data Link Layer):为信息添加额外的头尾部以保证传输过程中的正确性
  • 物理层(Physical Layer):实现信息在物理介质(电缆、无线)上的传播
  • WWW(World Wide Web):一个大规模、联机式的信息存储场所,简称Web
  • HTTP(HyperText Transfer Protocol):超文本传输协议。作用于应用层,是客户端浏览器或其他程序与Web服务器之间的通信协议。规定了客户端和服务器端请求和应答的标准,以及发布和接收HTML页面的方法
  • DNS(Domain Name System):域名系统。域名和IP地址相互映射的分布式数据库
  • TCP(Transmission Control Protocol):传输控制协议。作用于传输层,通过三次握手建立连接
  • IP(Internet Protocol):因特网互联协议。作用于网络层,IP地址的组成:网络地址(区号)+主机地址(电话号)
  • URL (Uniform Resource Locator):统一资源定位。浏览器地址栏中输入的网站地址
  • HTML(HyperText Markup Language):超文本标记语言。可通过浏览器读取并显示成网页
  • XML(Extentsible Markup Language):可扩展标记语言。HTML旨在显示信息,XML旨在传输信息。通常用来编写系统的配置文件
  • CSS(Cascading Style Sheets):层叠样式表。提供更加丰富的HTML文件样式
  • JavaScript:一种脚本语言,为网页增加用户交互操作
  • PHP:一种脚本语言,通常在服务器端运行,可对接数据库
  • json(JavaScript Object Notation):JavaScript对象符号。方便在.html文件中进行大量数据的传输
  • socket(套接字):
  • cookie:指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。当 Web 服务器创建了cookie 后,只要在其有效期内,当用户访问同一个 Web 服务器时,浏览器首先要检查本地的cookie,并将其原样发送给 Web 服务器
  • session:网络应用中的会话控制。session 对象存储特定用户会话所需的属性及配置信息

2、理论概念

  • 分布式系统(distributed system):
  • 代理服务器
  • 中间人攻击
  • InnoDB MyISAM
  • 全局锁(Global Interpretor Lock / GIL):
  • 消息队列:
  • 进程通信:
  • 网络通信框架:同步or异步、阻塞or非阻塞。老张和水壶的例子。

2、基本流程

  • 网页访问:在浏览器中输入域名——DNS服务器将域名转换为IP地址——向网页服务器发起访问请求——网页服务器返回.html文件——接收后通过浏览器编译成网页

2、Python库

  • http:Python自带库,包括了编写http客户端和服务器的模块以及对状态管理的支持(cookie)
  • urllib:Python自带库,用于编写与http服务器交互的客户端
  • BeautifulSoup:第三方库,用于从HTML或XML文件中提取数据
  • selenium:第三方库,一个强大的网络数据采集工具,最初用于网站自动化测试
  • Scrapy:一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。使用异步网络库Twisted来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求(限制:不支持分布式部署及JavaScript页面的抓取)

2、相关工具

  • virtualenv:Python部署工具,用于为不同应用创造独立的Python环境
  • SQLAlchemy:基于ORM框架,实现Python语句对SQL功能的直接调用
  • Danjo:Web框架,特点:大而全
  • Tornado:Web框架,特点:速度快
  • Flask:Web框架,特点:轻量
  • Web:Web框架,特点:超轻量
  • Scrapy:一款轻量的爬虫框架
  • Tkinter:GUI工具包
  • Bootstrap:前端框架
  • Postman:
  • JsonEditorOnline:
  • PhantomJS:一个“无头”(headless)浏览器。用于把网站加载到内存并执行页面上的JavaScript,但不会向用户展示网页的图形界面
  • SAE(Sina App Engine):新浪云计算平台

[Python] 网络的更多相关文章

  1. Python 网络编程(二)

    Python 网络编程 上一篇博客介绍了socket的基本概念以及实现了简单的TCP和UDP的客户端.服务器程序,本篇博客主要对socket编程进行更深入的讲解 一.简化版ssh实现 这是一个极其简单 ...

  2. Python 网络编程(一)

    Python 网络编程 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. ...

  3. 笔记之Python网络数据采集

    笔记之Python网络数据采集 非原创即采集 一念清净, 烈焰成池, 一念觉醒, 方登彼岸 网络数据采集, 无非就是写一个自动化程序向网络服务器请求数据, 再对数据进行解析, 提取需要的信息 通常, ...

  4. Python网络socket学习

    Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...

  5. Python学习(22)python网络编程

    Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...

  6. Day07 - Python 网络编程 Socket

    1. Python 网络编程 Python 提供了两个级别访问网络服务: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口 ...

  7. 关于Python网络爬虫实战笔记③

    Python网络爬虫实战笔记③如何下载韩寒博客文章 Python网络爬虫实战笔记③如何下载韩寒博客文章 target:下载全部的文章 1. 博客列表页面规则 也就是, http://blog.sina ...

  8. 关于Python网络爬虫实战笔记①

    python网络爬虫项目实战笔记①如何下载韩寒的博客文章 python网络爬虫项目实战笔记①如何下载韩寒的博客文章 1. 打开韩寒博客列表页面 http://blog.sina.com.cn/s/ar ...

  9. python网络编程-01

    python网络编程 1.socket模块介绍 ①在网络编程中的一个基本组件就是套接字(socket),socket是两个程序之间的“信息通道”. ②套接字包括两个部分:服务器套接字.客户机套接字 ③ ...

  10. python 网络爬虫(二) BFS不断抓URL并放到文件中

    上一篇的python 网络爬虫(一) 简单demo 还不能叫爬虫,只能说基础吧,因为它没有自动化抓链接的功能. 本篇追加如下功能: [1]广度优先搜索不断抓URL,直到队列为空 [2]把所有的URL写 ...

随机推荐

  1. std::thread线程库详解(5)

    目录 目录 前言 信号量 counting_semaphore latch与barrier latch barrier 总结 前言 前面四部分内容已经把目前常用的C++标准库中线程库的一些同步库介绍完 ...

  2. flexbox(弹性盒布局模型),以及适用场景

    一.是什么 Flexible Box 简称 flex,意为"弹性布局",可以简便.完整.响应式地实现各种页面布局 采用Flex布局的元素,称为flex容器container 它的所 ...

  3. 系统编程-网络-tcp客户端服务器编程模型(续)、连接断开、获取连接状态场景

    相关博文: 系统编程-网络-tcp客户端服务器编程模型.socket.htons.inet_ntop等各API详解.使用telnet测试基本服务器功能 接着该上篇博文,咱们继续,首先,为了内容的完整性 ...

  4. 1-Hyperledger Fabric概念详解

    目录 一.Hyperledger Fabric概述 二.基本术语 1.共享账本ledger 2.通道Channel 3.组织Org 4.智能合约Chaincode 5.背书Endorse 6.各种节点 ...

  5. IDEA如何在一个项目空间下管理多个项目?

    用过Eclipse和IDEA编程工具都知道,Eclipse创建新项目时都是在同一项目空间下,而IDEA一个项目空间只能有一个项目,创建项目时会创建.idea文件. 所以每次创建完项目或者打开另一个项目 ...

  6. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之配置环境-05

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之配置环境-05 欢迎加QQ群:1026880196 进行交流学习 #全部节点执行如下操作 1. 安装常 ...

  7. Go-06-数据类型、常量、运算符

    数据类型转换 Go语言采用数据类型前置加括号的方式进行类型转换,格式如:T(表达式).T表示要转换的类型:表达式包括变量.数值.函数返回值等. var a int =100 b := float(a) ...

  8. 简介TLS 1.3

    0x00 前言 最近在阅读论文,其中阅读了 WWW2021的一篇文章"TLS 1.3 in Practice: How TLS 1.3 Contributes to the Internet ...

  9. Day01_01_java背景

    1.Java背景 --由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称. --Java语言是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由当 ...

  10. Day10_48_Map集合中的常用方法

    Map集合中的常用方法 * 常用方法 - 注意 Map集合中的key是无序不可重复的set集合,如果添加数据时,key值重复了,后面添加的重复数据也是可以添加成功的,但是会覆盖前面相同的数据. 1. ...