CSAPP-优化程序性能

写程序的最主要的目的就是使它在所有的可能情况下都可以正确的工作。一个运行的很快但是给出错误的结果的程序没有任何用处。我们必须要写出清晰可以被维护的代码。

但是从另外一个方面讲,让程序运行的很快也是一个重要的考虑因素。这里将讨论如何使用几种不同类型的程序优化技术,使得程序运行的更快。

Read More

CSAPP-处理器体系结构

到目前为止,我们学习的计算机系统仅仅只限于机器语言的程序级别。我们知道处理器必须执行一系列的指令,每条指令执行某个简单的操作,例如两个数相加。指令被编码为一个或多个字节组成的二进制格式。一个处理器支持的指令和指令的字节被称为它的指令集体系结构(ISA)。

这一节将简要介绍处理器的硬件设计。这里将研究一个硬件系统执行某种ISA指令的方式,这会使你能够更加好的理解计算机系统是如何工作的,以及计算机制造商的技术挑战。

Read More

CSAPP-程序的机器级表示

在使用高级语言如C语言进行编程的时候我们大多数情况下都屏蔽了程序具体的机器级实现。相比之下在使用汇编语言编写程序时程序员必须明确指定程序应该如何管理和使用存储器。这一章主要以intel的IA32指令集为例子讲解C,汇编代码以及目标代码之间的关系。然后会讲到IA32的细节,并且会给出一些使用GDB调试器来检查机器级程序运行时行为的技巧。

Read More

CSAPP-信息的表示和处理

现代计算机系统存储和处理信息以二值信号表示,或者称为位(bit)。孤立的讲单独每个位是没有什么意义的,当将所有的位组合在一起并加上某种解释,即赋予不同的可能位模式及含义,就能够表示任何有限集合的元素。这一章主要研究三种最重要的数字编码表示 —– 无符号(unsigned)编码、补码(two’s-complement)编码、浮点数(floating-point)编码 (实数的科学计数法以2为基数的版本)。

Read More

HTTP内容补充

1. 基于HTTP的功能追加协议

在制订HTTP协议的时候,制定者主要想将HTTP作为HTML文档的传输协议。随着时代的发展,Web的用途更加多样。如在线购物网站,企业管理工具等等。这些网站的功能可以通过Web应用和脚本程序实现。但在性能上不一定最优,这是因为HTTP协议上的限制。HTTP功能上的不足可以通过创造一个全新的协议来弥补。可是目前基于HTTP的Web浏览器使用环境已经遍布全球,因此无法完全抛弃HTTP。有一些新协议的规则是基于HTTP,并在此基础上添加了新的功能。

  • 消除HTTP瓶颈的SPDY(为了解决某些网站短时间大量内容更新的问题)
  • 使用浏览器进行全双工通信的WebSocket
  • HTTP2.0
  • WebDAV Web服务器的管理文件方式

2. 构建Web内容的技术

在Web刚出现时,只能浏览页面的简单内容。现在,Web使用各种各样的技术,来呈现各种内容。

  • HTML
  • 动态HTML
  • Web应用
  • 数据发布的格式及语言(可扩展标记语言(XML),发布更新的RSS/ATom)

Web的攻击技术

简单的HTTP协议本身部存在安全问题,因此协议本身几乎不会成为攻击的对象。应用HTTP协议的服务器和客户端,以及运用在服务器伤的Web应用等资源采是攻击目标。

  1. HTTP协议本身不具备必要的安全功能,客户端既可以篡改请求。
  2. 因输出值转意不完全引发的安全漏洞。(SQL注入攻击等)
  3. 设计缺陷引起的漏洞。
  4. 因会话管理疏忽引发的安全漏洞。
  5. 其他安全漏洞。(密码破解,Dos攻击,后门程序)

HTTP报文内容解读

HTTP 通信过程包括从客户端往服务端的请求以及从服务器端返回客户响应。用于HTTP协议交互的信息被称为HTTP报文。HTTP报文本身是由多行数据构成的字符串文本。主要有Head和body两块

Read More

HTTP状态码分析

1. 状态码的作用

HTTP状态码负责表示客户端HTTP请求的返回结果,标记服务器端的处理是否正常。借助状态码客户端就可以快速知道服务器端的处理结果状态。其中数字的第一位指定了响应类别具体响应类别如下。

Read More

HTTP部首

HTTP协议的请求和响应报文中必定包含HTTP Head部分。这里将介绍这个部分的内容。

HTTP协议请求和响应的报文必定包含HTTP的HEAD部分,HEAD内容为客户端和服务器分别处理请求和响应所需要提供所需要的信息。对于客户端用户来说,这些信息中的大部分内容都无须亲自查看。

Read More