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. (原创)高DPI适配经验系列:(二)按DPI范围适配

    一.前言 一个软件,往往会用到位图资源,比如图标.图片.水晶按钮等. 在使用了位图资源后,就不能对任意DPI都进行适配,因为这样适配的代价太大了. 像Win10的缩放比例可以由100%-500%,如果 ...

  2. PYTHON工业互联网应用实战12—客户端操作

    本章节我们将实现与admin里类似的列操作"下达"功能,演示客户端是如何实现操作功能,同时,演示也会强调一点,何时合并你的功能代码,避免相同功能使用不同的代码段来实现,在企业开发中 ...

  3. HMS Toolkit助力开发者高效集成HMS Core

    当你的应用想集成华为HMS Core服务和上线华为应用市场,或当你已经开发了一个Android应用并集成了第三方移动服务,需要迁移使用HMS Core服务和上线华为应用市场的时候,如何快速.便捷.高效 ...

  4. java面试一日一题:请讲下对mysql的理解

    问题:请讲下对mysql的理解 分析:该问题主要考察对mysql的理解,基本概念及sql的执行流程 回答要点: 主要从以下几点去考虑, 1.mysql的整体架构? 2.mysql中每一个组件的作用? ...

  5. ECDSA密钥对生成以及在Token中的应用

    1 概述 本文主要讲述了如何利用Openssl生成ECDSA密钥对,并利用Auth0库进行Token生成及验证的过程. 2 ECDSA 2.1 简介 ECC(Elliptic Curve Crypto ...

  6. C++ 内存模型之单独编译

    单独编译得意义 将一个程序分成多个文件按保存,如果过对程序修改,找到要修改得文件进行修改后重新编译,则可以之重新编译该文件,然后后将他于其他文件得编译版本链接,是的大程序得管理更加高效便捷. 将单文件 ...

  7. Unix ls UVA - 400

      The computer company you work for is introducing a brand new computer line and is developing a new ...

  8. IDEA中Maven的配置

    Maven安装 下载Maven 官网:https://maven.apache.org/ 下载完成后,解压即可: 配置环境变量 在本机电脑的系统环境变量中 配置如下配置: 路径:此电脑-->高级 ...

  9. 【pytest官方文档】解读fixtures - 11. fixture的执行顺序,3要素详解(长文预警)

    当pytest要执行一个测试函数,这个测试函数还请求了fixture函数,那么这时候pytest就要先确定fixture的执行顺序了. 影响因素有三: scope,就是fixture函数的作用范围,比 ...

  10. 1.6.1- HTML中ul元素无序列表的使用

    无序列表的各个列表项之间没有顺序级别之分,是并列的,语法如下: <ul> <li>列表项1</li> <li>列表项2</li> <l ...