CSSAPP稀里糊涂的读书笔记(十一)网络编程

本章主要就是一些概念性的东西。代码直接看书。

  1. 每个网络应用都是基于客户端-服务器模型的。采用这个模型,一个应用是由一个服务器进程和一个或者多个客户端进程组成。服务器管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务。
    客户端-服务器模型中的基本操作是事务(transaction)。一个客户端-服务器事务由以下四步组成。
    1)当一个客户端需要服务时,它向服务器发送一个请求,发起一个事务。
    2)服务器收到请求后,解释它,并以适当的方式操作它的资源。
    3)服务器给客户端发送一个响应,并等待下一个请求。
    4)客户端收到响应并处理它。
    在这里插入图片描述

  2. 下图展示主机和路由器如何使用互联网络协议在不兼容的局域网间传送数据。主要就是一个封装和解包的过程。
    在这里插入图片描述

  3. 每台因特网主机都运行实现TCP/IP协议的软件。因特网的客户端和服务器混合使用套接字接口函数和Unix I/O函数来进行通信。
    TCP/IP 实际是一个协议族,其中每一个都提供不同的功能。IP协议提供基本的命名方法和递送机制,这种递送机制能够从一台因特网住居往其他主机发送包,也叫做数据报(datagram)。UDP稍微扩展了IP协议,包可以在进程间而不是主机间传送。TCP是一个构建在IP之上的复杂协议,提供了进程间可靠的全双工(双向的)连接。

  4. 套接字接口是一组函数,它们和Unix I/O函数结合起来,用以创建网络应用。
    下图是一个典型的客户端-服务器事务的上下文中的套接字接口概述。
    在这里插入图片描述
    关于套接字的详细信息,及其相关函数,建议直接看书。

  5. Web 客户端和服务器之间的交互用的是一个基于文本的应用级协议,叫做HTTP(Hypertext Transfer Protocol,超文本传输协议)。Web内容可以用一种叫做HTML(Hypertext Markup Language,超文本标记语言)的语言来编写。
    对于Web 客户端和服务器而言,内容是与一个MIME(Multipurpose Internet Mail Extensions,多用途的网际邮件扩充协议)类型相关的字节序列。
    在这里插入图片描述

  6. HTTP
    在这里插入图片描述

一个HTTP请求的组成是这样的:一个请求行(第5行),后面跟随零个或更多个请求报头(第6行),再跟随一个空的文本行来终止报头列表(第7行)。一个请求行的格式是
method URI version
HTTP 支持许多不同的方法,包括GET、POST、OPTIONS、HEAD、PUT、DELETE和TRACE。
请求报头的格式为:
header-name:header-data

一个HTTP响应的组成是这样的:一个响应行(第8行),后面跟随着零个或更多的响应报头(第913行),再跟随一个终止报头的空行(第14行),再跟随一个响应主体(第1517行)。一个响应行的格式是
version status-code status-message
状态码(status-code)是一个3位正整数,指明对请求的处理。
在这里插入图片描述
7. 从程序员的观点来看,我们可以把因特网看成一个全球范围的主机集合,具有以下几个属性:
1)每个因特网主机都有一个唯一的32位名字,称为它的IP地址
2)IP地址的集合被映射为一个因特网域名的集合。
3)不同因特网主机上的进程能够通过连接互相通信。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值