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. Spring Boot 轻量替代框架 Solon 1.3.18 发布

    Solon 是一个微型的Java开发框架.项目从2018年启动以来,参考过大量前人作品:历时两年,4000多次的commit:内核保持0.1m的身材,超高的跑分,良好的使用体验.支持:RPC.REST ...

  2. DFS 深搜专题 入门典例 -- 凌宸1642

    DFS 深搜专题 入门典例 -- 凌宸1642 深度优先搜索 是一种 枚举所有完整路径以遍历所有情况的搜索方法 ,使用 递归 可以很好的实现 深度优先搜索. 1 最大价值 题目描述 ​ 有 n 件物品 ...

  3. SpringMVC时间格式和时区解决办法

    问题默认情况下在使用spring的@ResponseBody返回json串时,如果有日期类型的数据,会发现在日期会莫名其妙的差8小时比如:2017-12-20 10:16:23.0结果是:2017-1 ...

  4. java.net.BindException: Problem binding to [hadoop103:8031] java.net.BindException

    ResourceManger启动失败,Namenode启动成功,这个问题排查了好久 在hadoop-2.7.6/logs/yarn-root-resourcemanager-hadoop102.log ...

  5. 透视HTTP协议,带你拨开纷繁复杂的表象

    一个HTTP,打趴80%面试者! HTTP是一个在计算机世界里专门在两点之间传输文字.图片.音频.视频等超文本数据的约定和规范.如果你不懂HTTP协议,那就相当于是个只有半桶水的程序员. 在这个专栏中 ...

  6. day8.函数基础

    一.函数介绍 1.什么是函数     函数就是盛放代码的容器,把实现某一功能的一组代码丢到一个函数中     就做成了一个小工具       具备某一功能的工具->函数     事先准备工具的过 ...

  7. Day14_75_反射(reflect)

    反射 反射的基本概念 反射是由Smith在1982年首次提出,主要是指程序可以访问,检测,修改它本身状态或行为的一种能力.并且能够根据自身行为的状态或结果,调整和修改所描述行为的状态和相关语义. ja ...

  8. python 闭包函数与装饰器

    1.什么是闭包函数 (1):什么是闭包函数: #内部函数包含对外部作用域而非全局作用域的引用, 简而言之, 闭包的特点就是内部函数引用了外部函数中的变量. 在Python中,支持将函数当做对象使用,也 ...

  9. kafka listeners和advertised配置

    kafka  listeners和advertised配置 kafka版本:kafka_2.11-2.3.0 kafka配置listeners # The address the socket ser ...

  10. 1. Robot Framework入门

    RF定义: 通用型的 自动测试框架, 绝大部分的软件的的自动化系统都可以采用它. 特点: 测试数据文件(Test Data)对应一个个的测试用例.测试数据文件里面使用的功能小模块叫关键字,由测试库(T ...