阅读本章,对体会比较深刻的句子做一个记录。很早就开始读了,但是只是零碎的思考和批注。从此以后,阅读的技术书籍都要写博客。
title: 2018-2-27《深入理解计算机系统》
tags: 服务器编程
十一章,网络编程
所有的网络模型都是基于相同的基本编程模型,有相似的逻辑结构,依赖相同的编程接口。
客户端-服务器编程模型:一个服务器进程和一到多个客户端进程组成。服务器管理某种资源,并且通过操作某种资源为客户端提供某种服务。
客户端处理的基本信息是事务。和数据库事务有什么区别呢?
以太网的每个主机都能看到其他。网段能保证网桥不会丢失同一个网段的帧。帧头的作用是寻址到路由器。因此,不同网段的帧的帧头是不一样的。TCP是提供了进程间的可靠的全双工的连接。
网络字节序是大端字节序。
gethostbyname 函数返回和域名name相关的主机条目。gethostbyaddr函数返回和IP地址相关的主机条目。是从DNS数据库中检索的主机条目。
hostname可以确定本地主机的实际域名。
etc/services 查看固定的服务应用。
只有在一端close的时候,另外的一端才会接受到结束的字符?
从linux内核的角度来看,一个套接字就是一个通信的端点。从unix的程序上来看,一个套接字就是有相应描述符的文件。
套接字有各种类型,英特网的套接字类型有后缀_in
.有一个通用的套接字类型。也有一个因特网的套接字类型。这些套接字和I/O函数一起,构成一些网络应用。
监听描述符:它被创建一次,并存在与服务器的整个生命周期。
connect连接建立起来之后,就返回了。如果有上万个连接,一台服务器是怎么处理的?
EOF条件,并不是字符。
本章中的echo服务器的主程序。
HTML的强大之处,是可以包含指针。就是所谓的万维网。
万维网的最开始的那个'/',不是Unix目录。相反,它是内容类型的主目录。
重点是服务的动态内容。CGI通用网关接口。
有四个过程:
1,客户端怎么把程序参数传递给服务器。
2,服务器如何将参数传递给子进程。
3,服务器如何将其他信息传递给子进程。大量的环境变量
4,子进程将它的输出发送到哪里?子进程加载CGI程序之前把标准输出重定向到和客户端相关联的描述符。