本章节主要讲的是web的工作原理,先大概熟悉记录一下,为以后写Django web框架打下基础。

web工作原理:

1.用户从浏览器输入网址----->browser通过电脑中的网络设备(网卡)发出request请求(线路A)

2.网卡将request----->互联网(线路B)

3.互联网----->远端服务器(线路C)

4.远端服务器----->web应用程序接收request,python代码运行index.GET这个处理程序(handler)(线路D)

5.代码return,python服务器发出响应(response)----->服务器(线路D)

6.服务器----->互联网(线路C)

7.互联网----->网卡(线路B)

8.网卡----->浏览器(browser)响应(response)这个内容(线路A)

以上是一个web的大概工作原理,是一个闭环的操作。

术语:

例子----->http://test.com//book/

浏览器(browser):我们每天都会用到的软件,作用是接收用户输入网址,使用该信息向该网址的服务器发送请求(request)

地址(address):类似http://test.com/一样的URL其中http是协议(protocol)

网址:URL(Uniform Resource Locator,统一资源管理器)

协议(protocol):http(Hyper-Text Transport Protocol)----->超文本传输协议,ftp(File Transport Protocol)----->文件传输协议

主机名(hostname):例子中的test,com就是主机名,一个便于人理解和记忆的字符串,会被匹配到一个叫做IP地址的数字上面

IP地址:IP地址相当于网络上的一台计算机的电话号码,通过它就可以访问到这台计算机了

路径:/book/,URL尾部的路径,它对应服务器上某个文件或者某些路径,通过访问这样的网址,可以向服务器发出请求,获取这些资源。

连接(connection):一旦浏览器知道了协议(http),服务器(http://test.com/)、以及要获得的资源(\book\),它就要创建连接

连接如何实现的:

1.个人计算机和服务器之间实现的连接

浏览器(browser)让操作系统(OS)打开计算机的一个端口(port)(通常是80端口)

  ----->端口准备好后,操作系统(OS)回传给你的程序一个类似文件的东西,所做的事情是通过网络传输和接收数据,让你自己的计算机和http://test.com//book/这个网站所属的服务器实现数据交流

2.个人计算机访问自己的站点的连接

浏览器(browser)让操作系统(OS)打开个人自己算的一个端口(port)(8080)

  ----->端口准备好后,操作系统(OS)回传给你的程序一个类似文件的东西你给,所做的事情是通过网络传输和接收数据,让自己的计算机(localhost)和http://locathost:8080/(自己的站点)实现数据交流

注:HTTP协议默认的端口是80

请求(request):浏览器为了获得服务器上的资源,它需要向服务器发送一个请求(request)。例如URL尾部加上的/book/就是浏览器想要的资源或者文件。资源并不一定是文件,当浏览器向你的web应用程序提出请求时,服务器返回的其实是python代码生成的一些东西。

服务器(sever):服务器是指浏览器另一端对应的计算机,它知道如何回应浏览器请求的资源和文件,大部分服务器只需要发送文件即可。

响应(response):服务器回复你的请求,发回到浏览器的HTML,里面包括CSS、javascript、或者图像等内容。这些内容包含在一个特别定义的头部信息(header)中,这样浏览器就知道它获取的是什么类型的内容

笨办法学习python-ex51自我理解笔记的更多相关文章

  1. 笨办法学习python之hashmap

    #!/user/bin/env python #-*-coding:utf-8 -*- #Author: qinjiaxi #初始化aMap列表,把列表num_buckets添加到aMap中,num_ ...

  2. “笨方法”学习Python笔记(1)-Windows下的准备

    Python入门书籍 来自于开源中国微信公众号推荐的一篇文章 全民Python时代,豆瓣高级工程师告诉你 Python 怎么学 问:请问你目前最好的入门书是那本?有没有和PHP或者其他语言对比讲Pyt ...

  3. 学习参考《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    国内编写的关于python入门的书,初学者可以看看. 参考: <零基础入门学习Python>电子书PDF+笔记+课后题及答案 Python3入门必备; 小甲鱼手把手教授Python; 包含 ...

  4. 学习《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    初学python入门建议学习<零基础入门学习Python>.适合新手入门,很简单很易懂.前一半将语法,后一半讲了实际的应用. Python3入门必备,小甲鱼手把手教授Python,包含电子 ...

  5. “笨方法”学习Python笔记(2)-VS Code作为文本编辑器以及配置Python调试环境

    Visual Studio Code 免费跨平台文本编辑器,插件资源丰富,我把其作为Debug的首选. 下载地址:https://code.visualstudio.com/Download 安装之后 ...

  6. 深度学习-Wasserstein GAN论文理解笔记

    GAN存在问题 训练困难,G和D多次尝试没有稳定性,Loss无法知道能否优化,生成样本单一,改进方案靠暴力尝试 WGAN GAN的Loss函数选择不合适,使模型容易面临梯度消失,梯度不稳定,优化目标不 ...

  7. LPTHW 笨方法学习python 16章

    根据16章的内容作了一些扩展. 比如,判断文件如果存在,就在文件后追加,如不存在则创建. 同时借鉴了shell命令中类似 cat <<EOF > test的方法,提示用户输入一个结尾 ...

  8. [笨方法学python]习题51自动化测试笔记

    习题51 本节自动化测试部分看不大懂,自己每步都打印出来,帮助理解.(代码标红部分为自己加入调试为打印变量值所用) tests/tools.py from nose.tools import * im ...

  9. 深度学习-DCGAN论文的理解笔记

    训练方法DCGAN 的训练方法跟GAN 是一样的,分为以下三步: (1)for k steps:训练D 让式子[logD(x) + log(1 - D(G(z)) (G keeps still)]的值 ...

随机推荐

  1. diskpart 分区,挂载,和移除

    list disk select disk 1 clean Create partition primary size=102400 active format quick list volume a ...

  2. fedora 21下Virtual Box安装Windows XP SP3

    Installing Virtual Box and Windows XP SP3 during Fedora 21 The first step:Download and Install Virtu ...

  3. Linux Centos7(Mac)安装Docker

    docker 强调隔离性 docker:官网 docker:镜像官网:        镜像官网可以所有应用,选择安装环境:会给出安装命令,例如:docker pull redis 默认拉取最新的版本( ...

  4. ps 和 top

    ps 进程和线程的关系: (1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程. (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源. (3)处理机分给线程,即真正在处 ...

  5. mybatis源码学习(四):动态SQL的解析

    之前的一片文章中我们已经了解了MappedStatement中有一个SqlSource字段,而SqlSource又有一个getBoundSql方法来获得BoundSql对象.而BoundSql中的sq ...

  6. 使用ScriptX控件进行Web横向打印

    一个需求需要采用横向打印,目前采用IE自身的打印功能(WebBrowser.ExecWB控件)很难进行横向设置,默认需要调用document.all.WebBrowser.ExecWB(8,1);打开 ...

  7. P4370 [Code+#4]组合数问题2

    题目要求当\(0\leq a\leq b\leq n\)时,\(k\)个\(\tbinom{b}{a}\)的和的最大值 观察杨辉三角形,可以发现,最大的\(\tbinom{b}{a}\),为\(\tb ...

  8. rabbitmq启动时出错epmd error for host

    centos7环境下新装rabbitmq,第一次启动时发现出错:ERROR: epmd error for host "****":XXXXXXX 检查发现当前机器的名称为 1  ...

  9. 如何将PHP7达到最高性能

    PHP7 VS PHP5.6 1. Opcache 记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 所以之前测试时期就发生了有人 ...

  10. 数据结构--队列(Java实现)

    数据结构--队列(Java实现) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 简介 队列是一种特殊的线性表,特殊之处在于它只 ...