Coursera - Python for Everybody - 课程笔记 - Week 15

Week 15

12.1 网络技术 Networked Technology

  • 分层架构:应用层,传输层,互联网层,链路层,物理层
  • 传出层:端到端
  • 传输控制协议(TCP):
    • 建立在IP上
    • 假设IP可能会丢失部分数据——如果丢失了就重传
    • 使用一个传输窗口解决流控制问题
    • 提供一个可信管道
  • 套接字:TCP链接
    • 一个网络套接字是跨越一个基于互联网歇息网络的双向进程间通信的一个端点
  • TCP端口号:
    • 端口是一个指定应用或指定进程的软件通信端点
    • 允许多个应用在一个网络服务器上共存
    • 有一些普遍了解的TCP端口号
  • python上的套接字(创建链接):
import socket
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect(('HOSTNAME', PortNumber))

12.2 超文本传输协议(HTTP) Hypertext Transfer Protocol (HTTP)

  • 应用程序协议:相对于TCP提供一个套接字供我们使用和维护链接,应用程序协议则是利用这些链接
    • 电子邮件
    • 万维网
  • HTTP:超文本传输协议
    • 互联网上的首要应用层协议
    • 为web设计——取回HTML,图像,文档等等
    • 扩展到除了文档意外的数据——RSS,web服务等等
    • 基本流程:建立连接,请求文档,取回文档,关闭连接
  • HTTP:一组供浏览器从服务器取回文档的规则
  • 协议:一组各方都遵守的规则以确保我们能够预知对方的行为
  • URL:统一资源定位符
    • (协议)https://(域名)www.dr-chunk.com(文档)/page1.html
  • 在一个页面跳转到另一个页面是使用一个请求-回应循环实现的
  • HTTP回应报文由元数据和页面内容组成
  • 请求python实现
cmd = 'GET http://data.pr4e.org/remeo.txt HTTP/1.0\r\n\r\n'.encode()
mysock.send(cmd) # 发送请求

while True:
    data = mysock.recv(512) # 一次最多512个字符
    if (len(data) < 1): # 文档结尾,结束
        break
        
    print(data.decode())
    
mysock.close() # 关闭连接

套接字 Sockets

  • 详细内容请查看源代码

使用开发者终端探索HTTP Using the Developer Console to Explore HTTP

  • 404:请求未找到
  • 302:重定向到指定(正确的)网址
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值