自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (18)
  • 收藏
  • 关注

原创 INADDR_ANY的含义

在一些socket通信的服务器程序中我们会看到在服务器bind IP地址和端口号时,我们不是bind明确的IP地址(如222.20.79.150),而是使用INADDR_ANY,这会让我们产生一个疑问,就是如果服务器程序不使用明确的IP地址,那么客户端该如何连接服务器呢? 下面对这个问题进行解答。 INARRD_ANY是用于多网卡的机器上的,多网卡就会有多个IP地址...

2019-06-27 12:53:01 2383

原创 visual studio 2017配置jsoncpp

1.下载jsoncpp下载链接为:http://sourceforge.net/projects/jsoncpp/2.编译静态库(1)打开sln        下载好源码以后使用visual studio打开文件夹jsoncpp-src-0.5.0\makefiles\vs71下的jsoncpp.sln。这里我使用的是visual studio2017(2)生成静态库   ...

2019-02-24 09:39:36 5171 6

原创 Go语言学习笔记(补充)格式化输出

动  词 功  能 %v 按值的本来值输出 %+v 在 %v 基础上,对结构体字段名和值进行展开 %#v 输出 Go 语言语法格式的值 %T 输出 Go 语言语法格式的类型和值 %%...

2019-01-24 11:16:46 450

原创 Go语言学习笔记(十)Go语言编译与工具

Go语言的工具链非常丰富,从获取源码、编译、文档、测试、性能分析,到源码格式化、源码提示、重构工具应有尽有。1.go build        Go语言中使用go build命令将源码编译为可执行文件。(1)go build无参数编译        在main包所在目录下使用go build命令进行编译,生成当前目录名的可执行文件。(2)go build + 文件列表   ...

2019-01-24 09:33:22 313

原创 Go语言学习笔记(九)并发

        并发指在同一时间内可以执行多个任务。        Go语言通过编译器运行时(runtime),从语言上支持了并发的特性。Go语言的并发通过goroutine特性完成。goroutine类似于线程,但是可以根据需要创建多个goroutine并发工作。goroutine是由Go语言的运行时调度完成的,而线程是由操作系统调度完成。1.goroutine(轻量级线程)    ...

2019-01-23 17:44:15 364

原创 Go语言学习笔记(八)包(package)

        Go语言的源码服用建立在包(package)基础之上。Go语言的入口main()函数所在的包叫main,main包想要引用别的代码,必须同样以包的方式进行引用。        Go语言的包与文件夹一一对应,所有与包相关的操作,必须依赖于工作目录GOPATH。1.GOPATH(1)使用命令行查看GOPATH信息zk@ubuntu:~/Go$ echo $GOPATH...

2019-01-21 22:03:12 211

原创 Go语言学习笔记(七)接口

        Go语言中的接口作用类似于C++中的虚函数机制,可以提供一个统一调用的方式。         接口是双方约定的一种合作协议。接口实现者不需要关心接口会被怎样使用,调用者也不需要关心接口的实现细节。接口是一种类型,也是一种抽象结构,不会暴露所包含数据的格式、类型及结构。1.接口的定义         每个接口类型由多个方法组成。type 接口类型名 interfac...

2019-01-21 17:32:41 279

原创 Go语言学习笔记(六)方法和接收器

    C++是一种面向对象的编程语言,我们可以为类提供成员变量和成员方法。而在Go中没有类的概念,但是也提供了类似的机制来表示,那就是方法。        Go语言中的方法(method)是一种作用于特定类型变量的函数。这种特定类型变量叫做接收器(receiver)。如果将特定类型理解为结构体或类,那接收器的概念就类似于其他语言中的this或者self.        在Go语言中,接收...

2019-01-20 11:19:21 2395

原创 Go语言学习笔记(五)Go语言结构体

        Go语言的关键字type可以将各种基本类型定义为自定义类型,基本类型包括整型、字符串、布尔等。结构体是一种复合的基本类型,通过type定义为自定义类型后,使结构体更便于使用。1.结构体定义格式type 类型名 struct { 字段1 字段1类型 字段2 字段2类型 ......}类型名:标识自定义结构体的名称,在同一个包内不能重复st...

2019-01-19 11:44:43 307

原创 Go语言学习笔记(四)Go语言函数

        Go语言的函数声明以func标识,后面紧接着函数名、参数列表、返回参数列表以及函数体。1.普通函数的声明形式func 函数名(参数列表) (返回参数列表){ //函数体}注意:在同一个包内,函数名不能相同参数列表中如果多个参数类型相同,则可放在一起声明。如func test(a, b int) {}同时声明a, b为int类型函数可以同时返回多个值...

2019-01-18 09:55:55 243

原创 Go语言学习笔记(三)Go语言流程控制

1.if-else(分支结构)a).格式1if 表达式1 { 分支1} else if 表达式2 { 分支2} else{ 分支3}b).格式2if 语句1; 条件表达式 { //to do}注意:a).左花括号{必须跟在if/else后面,不能另起一行2.for(循环结构)for 初始语句;条件表达式;结束语句{ ...

2019-01-17 19:57:22 187

原创 Go语言学习笔记(二)Go语言容器(array、slice、map、list)

1.数组        数组(array)是一段固定长度的连续内存区域。在go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。a).数组的声明var 数组名 [元素数量]T注:元素数量必须是整型数值且在编译期就确定T可以是任意基本类型,包括T为数组本身,此时可以实现多维数组b).数组的初始化方式1:var str [3]stringstr[0]...

2019-01-17 16:45:00 504 1

原创 Go语言学习笔记(一)Go语言变量的声明和初始化

       由于我以前是学的C/C++语言,所以在博客中会将Go与C/C++进行对比来学习:       Go语言作为C语言家族的新派代表,在C语言的定义方法和类型上做了优化和调整,更加灵活易学。今天首先从最简单的变量声明开始进行学习:1.三种声明方式        普通变量的声明有三种方式,第一种和第二种通过关键字var来声明变量,第三种则靠编译器进行推断,分别如下:var ...

2019-01-17 10:50:59 507

原创 linux常用快捷键总结(shell快捷键和vim快捷键)

1.Shell命令行快捷键ctrl + a: 跳到命令行首ctrl + e:跳到命令行尾ctrl + u: 删除光标至命令行首的内容ctrl + k: 删除光标至命令行尾的内容ctrl + l: 清屏ctrl + r: 检索历史命令ctrl + i: 相当于tab键,补全命令ctrl + s: 使终端静止,让快速输出的屏幕停下来ctrl + q: 退出ctrl+s引起的静止...

2018-12-02 17:46:29 3224

原创 使用软链接解决/home挂载目录磁盘不足问题

       我们有时候会碰到这样的事,一个服务器同时有多个人在使用,我们每个人都有一个用户名和密码,通过用户名和密码登录上服务器以后就直接使用,但是大家忽略了一个问题,就是我们的家目录挂载在哪个目录下,以及我们所挂载的目录容量是否足够大,如果容量太小应该怎么办,今天就是来解决这个问题的。1.问题描述    如下图,/dev/sda6挂载在/home目录下,即我们普通用户家目录下的数据都存...

2018-11-22 23:17:53 5731

原创 Linux下目录与文件的权限意义

        我们知道Linux系统内文件的是那种身份(所有者、用户组合其他人),每种身份都有三种权限(rwx)。我们可以通过chown、chgrp和chmod三个命令来修改这些权限和属性。下面来分别详细介绍一下这三种权限对文件或目录的意义。1.权限对文件的重要性r(read):可读取此文件的实际内容,如入度文本文件的文字内容等。 w(write):可以编辑、新增或者修改该文件的内容...

2018-11-06 23:47:04 326

原创 TCP三次握手和网络编程函数的对应关系

1.客户端调用connect()函数,此时客户端会向服务端发送SYN2.服务端收到SYN后,会从listen()函数返回SYN+ACK3.客户端收到connect()函数的返回,之后向服务端发送最后一个ACK4.服务端收到最后一个ACK以后,将该连接请求从未完成连接队列放入已完成连接队列中,等待accept()从该队列中取出...

2018-10-14 12:11:11 1176

原创 listen()函数的backlog参数含义详解

 #include <sys/socket.h>int listen(int sockfd, int backlog);sockfd是调用socket()函数的返回值,不用多解释。这里主要说明backlog参数的含义:        为了理解其中的backlog参数,我们必须认识到内核为任何一个给定的监听套接字维护两个队列:       (1)未完成连接队列,每个...

2018-10-14 12:03:48 2296 4

原创 编译期多态和运行期多态

       运行期多态(runtime polymorphism),也称为显式多态,是指类中成员函数是virtual,类将对这些函数表现出运行期多态,也就是说将于运行期根据基类指针或者引用的动态类型决定究竟调用哪一个函数。       编译期多态(cmpile-time polymorphisms),也称为隐式多态,是指以不同的template参数具现化function templates ...

2018-09-20 22:27:36 1197

原创 C++ string的最常用的用法总结

1.string的构造方法string s(cp);string s(cp, n);string s(s1);string s(s1, pos2);string s(s1, pos2, len2);2.substr()s.substr(pos, n):返回一个string,包含s中从pos开始的n个字符的拷贝。pos的默认值为0,n的默认值为              ...

2018-09-18 15:26:17 660

原创 网络编程教程(八)信号和定时器

一、信号1.信号 API(1)发送信号#include <sys/types.h>#include <signal.h>int kill(pid_t pid, int sig);函数功能: 向进程ID为pid的进程发送信号sig函数参数: pid:进程编号 sig:信号值返回值: 函数成功时返回0,失败则返回-1,并设...

2018-07-27 19:49:57 984

原创 网络编程教程(七)I/O复用

        I/O复用是一种I/O通知机制,使得程序同时监听多个文件描述符,从而提高程序的性能。一、I/O复用的使用场景        1.客户端程序要同时处理多个socket        2.客户端程序同时处理用户输入和网络连接        3.TCP服务器要同时处理监控socket和连接socket        4.服务器要同时处理TCP请求和UDP请求   ...

2018-07-26 23:07:43 218

原创 网络编程教程(六)Linux服务器编程框架

 一、服务器编程框架模块 单个服务器程序 服务器机群 I/O处理单元 处理客户连接,读写网络数据 作为接入服务器,实现负载均衡 逻辑单元 业务进程或线程 逻辑服务器 网络存储单元 本地数据库 、文件或缓存 数据库服务器 请求队列 各单元之间的通信方式 各服务器之间的永久TCP连接         I/O处理...

2018-07-25 23:02:07 3092

原创 网络编程教程(五)高级I/O函数

        本篇博客讨论和网络编程相关的几个高级I/O函数,分为以下三类:        用于创建文件描述符的函数,包括pipe、dup/dup2函数。        用于读写数据的函数,包括readv/writev、sendfile、mmap/munmap、splice和tee函数。        用于控制I/O行为和属性的函数,包括fcntl函数。一、用于创建文件描述符的函...

2018-07-23 22:21:46 292

原创 网络编程教程(四)Linux网络编程基础API

        首先介绍Linux下整个的网络编程流程:一、socket地址API1.主机字节序和网络字节序        字节序分为大端字节序(big endian)和小端字节序(little endian)。大端字节序是指一个整数的搞我字节存储在内存的低地址处,低位字节存储在内存的高地址处。小端字节序则是整数的高位字节存储在内存的高地址处,而低位字节则存储在内存的低地址处。...

2018-07-22 22:18:09 244

原创 网络编程教程(三)TCP协议详解

 一、TCP服务的特点1.面向连接的        使用TCP协议通信的双方必须先建立连接,然后才能通信。这里就涉及到对连接的理解,或者说这个连接对应到socket编程中又是什么?在进行TCP通信时,通信双方都必须在内核中为该连接分配一定的内核资源,用于记录和维持该连接的状态、连接上的数据发送情况和定时器等。2.可靠的       TCP协议通过超时重传和应答确认机制来保证数据...

2018-07-20 11:42:00 624

原创 网络编程教程(二)IP协议详解

一、IP服务特点1.无状态        无状态是指IP通信双方不同步传输数据的状态信息,因此所有IP数据报的发送、传输和接收都是相互独立的。这种服务的缺点是无法处理重复、乱序的IP数据包,而优点就是快速和高效。2.无连接        无连接是指IP通信双方都不长久地维持对方的任何信息。因此,上层协议每次发送数据的时候,都必须明确指定对方的IP地址。3.不可靠        不可靠是指IP协议不...

2018-07-01 16:07:14 331

原创 网络编程教程(一)TCP/IP协议族概述

        TCP/IP协议族理论上是七层模型,在实际应用中是四层,下面介绍每一层的作用。1.数据链路层        数据链路层实现了网卡接口的网络驱动层序,以处理数据在物理媒介(比如以太网、令牌环网)上的传输。不同的物理网络具有不同的电器特性,网络驱动程序隐藏了这些细节,为上层协议提供了一个统一的接口。        数据链路层两个常用的协议是ARP协议和RARP协议。2.网络层     ...

2018-07-01 13:16:29 257

原创 C++ STL中set、multiset、hash_set、hash_multiset,map、multimap、hash_map和hash_multimap之间的区别

1.set和multiset的区别set和multiset两者的底层结构都是RB-tree,两者唯一的区别是使用的insert()函数不同,set中不允许存在重复的元素,所以底层使用的插入元素函数为insert_unique();而multiset中运行存在重复元素,所以底层使用的插入元素函数为insert_equal().2.map和multimap的区别        同set和multise...

2018-06-21 10:48:03 539

原创 设置xampp中的apache服务自启动教程(详细图解)

1.打开XAMPP Control Panel,然后点击下图中的config2.在出现的Configuration of Control Panel框中选择要自动的服务,然后保存退出,如下图:在下一次重新开机时就会自启动这些服务了。...

2018-06-11 16:58:53 5573

原创 Linux写时拷贝实现原理

        传统的fork系统调用直接把所有资源复制给新创建的进程,这种实现过于简单并且效率低下。        写时拷贝指的是两个任务可以同时自由读取内存,但任意一个任务试图对内存进行修改时,内存就会复制一份提供给修改方单独使用,以免影响到其他的任务使用。        Linux的fork()使用写时拷贝页实现。写时拷贝是一种可以推迟甚至免除拷贝数据的技术。内核此时并不复制整个进程地址空间...

2018-06-08 10:28:38 1730

原创 Git常用命令总结

        最近在学习Git的常用命令,希望能提高日常的工作效率,下面进行一个总结。        首先说说什么是git,什么是github。git是一个分布式的版本控制系统,简单易用,它的命令有很多,但是常用的只有下面十几个;那什么又是github呢,嗯,它就是传说中的“全球最大的同性交友平台”,开玩笑哈,github就是一个远程项目托管服务器,而且是免费的;当然这个免费也是由代价的,如果你...

2018-06-05 22:53:01 177

原创 深入浅出系统调用的原理

        这里不进行系统调用源码的分析,因为那个太费时间了,而且很难在很快的时间里能够理解。但是我相信你看完下面的文章,你对系统调用的实现原理肯定有一个很深的理解。一、系统调用的介绍1.什么是系统调用        系统调用就是应用程序与系统内核之间的接口。通过系统调用访问系统资源。2.为什么需要系统调用        由于系统有限的资源可能被多个不同的应用程序同时访问可因此,如果不加以保护...

2018-06-03 14:58:20 4130

原创 exit()和_exit()两个函数的区别

        exit()和_exit()这两个函数都是用于函数退出,但这两者有一些细微的差别,在exit()函数里会调用_exit()函数。下面来看看exit()的函数代码大概:void exit(int status){ while(_exit_funcs != NULL) { ... _exit_funcs = _exit_funcs-&g...

2018-06-02 10:13:28 20795 3

原创 程序中出现“烫烫烫烫烫烫烫.......”和“屯屯屯屯屯屯......”的原因

范德萨发

2018-05-27 15:10:41 10068

原创 在linxu中经常发生段错误(segment fault)的原因

        我们在linux上写代码,并运行程序时,经常会碰到程序执行到一半发生“segment fault”的错误,一头雾水,而且对这类问题的排查也是相当麻烦的一件事。而且我在面试的过程中也被面试官问到过这个问题,所以了解发生这个问题的原因对于在linux开发的技术人员来说是很有必要的。        引起这个错误的典型情况是对非法指针解引用。当指针指向一个不允许读或写的内存地址,而程序却试...

2018-05-25 17:55:40 3185

原创 TCP 为什么是三次握手,而不是两次或四次?

        TCP是一个全双工的通信,三次握手完成两个重要的功能,一是协调双方双方做好发送数据的准备工作(双方都知道彼此已准备好),确保双方都知道对方的存在;二是协调好双方的初始序列号,这个序列号在握手过程中被发送和确认。        首先我们来解释为什么不是两次握手,而是三次握手。我们以打电话为例,在打电话的过程中,双方为了确认自己说的话能被对方听见,需要向对方进行确认。下图这种情况就类似...

2018-05-22 16:59:01 3418 1

原创 数据结构之查找(面试专用)

        本篇博客主要用于对查找方面的数据结构做一个简单的介绍,能满足面试的时候问的问题深度即可,所以不会给出代码实现。一、静态查找表        静态查找表主要满足一下两点:        a.查找某个“特定的”数据元素是否在查找表中;        b.检索某个“特定的”数据元素的各种属性。方法特点时间复杂度顺序查找逐个比较,等概率比较O(n)二分查找前提是序列有序O(logn)次优查...

2018-05-22 16:29:35 814

原创 数据结构之二叉排序树(C语言实现)

一、基本概念1.二叉排序树 二叉排序树(Binary sort tree,BST),又称为二叉查找树,或者是一棵空树;或者是具有下列性质的二叉树:(1)若它的左子树不为空,则左子树上所有节点的值均小于它的根节点的值;(2)若它的右子树不为空,则右子树上所有节点的值均大于它的根节点的值;(3)它的左、右子树也分别为二叉...

2018-05-21 23:35:10 70006 30

原创 深入浅出静态链接和动态链接

        作为一名C/C++程序员,对于编译链接的过程要了然于胸。首先大概介绍一下,编译分为3步,首先对源文件进行预处理,这个过程主要是处理一些#号定义的命令或语句(如宏、#include、预编译指令#ifdef等),生成*.i文件;然后进行编译,这个过程主要是进行词法分析、语法分析和语义分析等,生成*.s的汇编文件;最后进行汇编,这个过程比较简单,就是将对应的汇编指令翻译成机器指令,生成可...

2018-05-06 09:24:48 82591 36

图解HTTP+彩色版

本书对互联网基盘——HTTP协议进行了全面系统的介绍。作者由HTTP协议的发展历史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面。本书的特色为在讲解的同时,辅以大量生动形象的通信图例,更好地帮助读者深刻理解HTTP通信过程中客户端与服务器之间的交互情况。读者可通过本书快速了解并掌握HTTP协议的基础,前端工程师分析抓包数据,后端工程师实现REST API、实现自己的HTTP服务器等过程中所需的HTTP相关知识点本书均有介绍。 本书适合Web开发工程师,以及对HTTP协议感兴趣的各层次读者。

2018-05-21

Java核心技术 卷1

JAVA核心技术(卷1):基础知识(原书第9版)》是《Java核心技术》的最新版,《Java核心技术》出版以来一直畅销不衰,深受读者青睐,每个新版本都尽可能快地跟上Java开发工具箱发展的步伐,而且每一版都重新改写了的部分内容,以便适应Java的最新特性。本版也不例外,它反遇了Java SE6的新特性。全书共14章,包括Java基本的程序结构、对象与类、继承、接口与内部类、图形程序设计、事件处理、Swing用户界面组件、部署应用程序和Applet、异常日志断言和调试、叙述方式深入浅出,并包含大量示例,从而帮助读者充分理解Java语言以及Java类型库的相关特性。

2018-05-10

Head First设计模式

《Head First设计模式》(中文版)共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。前言先介绍这本书的用法;第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton,Command、Adapter、Facade、TemplateMethod、Iterator、Composite、State、Proxy。最后三章比较特别。第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词),第13章介绍如何进一步学习设计模式,如何发觉新的设计模式等主题,至于第14章则很快地浏览尚未介绍的设计模式,包括Bridge、Builder、Chain of Responsibility、Flyweight、Interpreter、Mediator、Memento、Prototype,Visitor。第1章还介绍了四个○○基本概念(抽象、封装、继承、多态),而第1章到第9章也陆续介绍了九个○○原则(Principle)。千万不要轻视这些○○原则,因为每个设计模式背后都包含了几个○○原则的概念。很多时候,在设计时有两难的情况,这时候我们必须回归到○○原则,以方便判断取舍。可以这么说:○○原则是我们的目标,而设计模式是我们的做法。

2018-05-10

Java并发编程的艺术

并发编程领域的扛鼎之作,作者是阿里和1号店的资深Java技术专家,对并发编程有非常深入的研究,《Java并发编程的艺术》是他们多年一线开发经验的结晶。本书的部分内容在出版早期发表在Java并发编程网和InfoQ等技术社区,得到了非常高的评价。它选取了Java并发编程中最核心的技术进行讲解,从JDK源码、JVM、CPU等多角度全面剖析和讲解了Java并发编程的框架、工具、原理和方法,对Java并发编程进行了最为深入和透彻的阐述。 《Java并发编程的艺术》内容涵盖Java并发编程机制的底层实现原理、Java内存模型、Java并发编程基础、Java中的锁、并发容器和框架、原子类、并发工具类、线程池、Executor框架等主题,每个主题都做了深入的讲解,同时通过实例介绍了如何应用这些技术。

2018-05-10

深入理解Java虚拟机

《深入理解Java虚拟机:JVM高级特性与最佳实践》内容简介:作为一位Java程序员,你是否也曾经想深入理解Java虚拟机,但是却被它的复杂和深奥拒之门外?没关系,本书极尽化繁为简之妙,能带领你在轻松中领略Java虚拟机的奥秘。本书是近年来国内出版的唯一一本与Java虚拟机相关的专著,也是唯一一本同时从核心理论和实际运用这两个角度去探讨Java虚拟机的著作,不仅理论分析得透彻,而且书中包含的典型案例和最佳实践也极具现实指导意义。 全书共分为五大部分。第一部分从宏观的角度介绍了整个Java技术体系的过去、现在和未来,以及如何独立地编译一个OpenJDK7,这对理解后面的内容很有帮助。第二部分讲解了JVM的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出异常产生的原因;常见的垃圾收集算法以及垃圾收集器的特点和工作原理;常见的虚拟机的监控与调试工具的原理和使用方法。第三部分分析了虚拟机的执行子系统,包括Class的文件结构以及如何存储和访问Class中的数据;虚拟机的类创建机制以及类加载器的工作原理和它对虚拟机的意义;虚拟机字节码的执行引擎以及它在实行代码时涉及的内存结构。第四部分讲解了程序的编译与代码的优化,阐述了泛型、自动装箱拆箱、条件编译等语法糖的原理;讲解了虚拟机的热点探测方法、HotSpot的即时编译器、编译触发条件,以及如何从虚拟机外部观察和分析JIT编译的数据和结果。第五部分探讨了Java实现高效并发的原理,包括JVM内存模型的结构和操作;原子性、可见性和有序性在Java内存模型中的体现;先行发生原则的规则和使用;线程在Java语言中的实现原理;虚拟机实现高效并发所做的一系列锁优化措施。

2018-05-10

HTTP权威指南.

HTTP(HyperText Transfer Protocol,超文本传输协议)是Web客户端与服务器交互文档和信息时所使用的协议,是每个成功Web事务的幕后推手。众所周知,我们每天访问公司内部网络、搜索绝版书籍、研究统计信息时所使用的浏览器的核心就是HTTP。但HTTP的应用远不仅仅是浏览Web内容。由于HTTP既简单又普及,很多其他网络应用程序也选择了它,尤其是采用SOAP和XML-RPC这样的Web服务。   详细解释了HTTP协议,包括它是如何工作的,如何用它来开发基于Web的应用程序。但本书并不只介绍了HTTP,还探讨了HTTP有效工作所依赖的所有其他核心因特网技术。尽管HTTP是本书的中心内容,但本书的本质是理解Web的工作原理,以及如何将这些知识应用到Web编程和管理之中去,主要涵盖HTTP的技术运作方式、产生动机、性能和目标,以及一些相关技术问题。   本书是HTTP协议及相关Web技术方面的著作,主要内容包括:   HTTP方法、首部以及状态码   优化代理和缓存的方法   设计Web机器人和爬虫的策略   Cookies、认证以及安全HTTP   国际化及内容协商   重定向及负载平衡策略   要想高效地进行Web开发,所有Web程序员、管理员和应用程序开发者都应该熟悉HTTP。很多书籍只介绍了Web的使用方式,而本书则深入说明了Web的工作原理。

2018-05-04

MySQL核心内幕

本书共分12章。第1章介绍MySQL的历史渊源。第2章介绍MySQL数据库的架构。第3章深入了解MySQL源代码,第4章解释关键的类和算法。从第5章开始直到最后,按各子系统进行讲解,内容包括连接和网络系统、服务器线程和资源管理、查询解析与优化器、安全管理系统、存储引擎接口详解与实践、经典存储引擎、日志功能及实践分析和其他子系统。

2018-05-04

算法导论中文版(高清)

这本书深入浅出,全面地介绍了计算机算法。对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。本书的设计目标全面,适用于多种用途。涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍。书中专门讨论了线性规划,介绍了动态规划的两个应用,随机化和线性规划技术的近似算法等,还有有关递归求解、快速排序中用到的划分方法与期望线性时间顺序统计算法,以及对贪心算法元素的讨论。此书还介绍了对强连通子图算法正确性的证明,对哈密顿回路和子集求和问题的NP完全性的证明等内容。全书提供了900多个练习题和思考题以及叙述较为详细的实例研究。

2018-05-04

图解TCP/IP

这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识、掌握TCP/IP的基本技能。 书中讲解了网络基础知识、TCP/IP基础知识、数据链路、IP协议、IP协议相关技术、TCP与UDP、路由协议、应用协议、网络安全等内容,引导读者了解和掌握TCP/IP,营造一个安全的、使用放心的网络环境。 本书适合计算机网络的开发、管理人员阅读,也可作为大专院校相关专业的教学参考书。

2018-05-04

从哲学层次上看操作系统

操作系统是计算机系统的核心系统软件,负责控制和管理整个系统,使之协调工作。本书对操作系统的核心内容进行了全面分析,包括操作系统的发展历史和基本概念、进程与线程、内存管理、文件系统、输入与输出、多核环境下的进程调度和操作系统设计。本书用大量生活实例,生动地解释了操作系统中的主要难点和模糊点:锁的实现、同步机制的发展轴线、纯粹分段到段页式的演变、多核环境下的进程同步与调度和操作系统设计等内容。本书重点突出、逻辑清晰、内容连贯,便于学生顺利掌握操作系统的核心内容。 本书层次丰富、涵盖操作系统的所有核心内容,适合作为国内高校计算机及相关专业本科生操作系统课程的教材,也是了解计算机操作系统原理不可多得的参考书。

2018-05-04

操作系统精髓与设计原理第5版(高清版) pdf

操作系统:精髓与设计原理》是讲解操作系统的经典教材,全书不仅系统地讲述了操作系统的基本概念、原理和方法,而且以当代最流行的操作系统——Windows Vista、UNIx和Linux为例,全面清楚地展现了当代操作系统的本质和特点。与教材配套的专用站点,为教师和学生理解书中内容,提供了及时、生动的材料。

2018-05-03

深入理解计算机系统(原书第2版).pdf

《深入理解计算机系统》 是理解计算机系统首选书目,是10余万程序员的共同选择。卡内基-梅隆、北京大学、清华大学、上海交通大学等国内外众多知名高校选用指定教材。从程序员视角全面剖析的实现细节,使读者深刻理解程序的行为,将所有计算机系统的相关知识融会贯通。

2018-05-03

Linux高性能服务器编程.pdf

《Linux高性能服务器编程》是Linux服务器编程领域的经典著作,由资深Linux软件开发工程师撰写,从网络协议、服务器编程核心要素、原理机制、工具框架等多角度全面阐释了编写高性能Linux服务器应用的方法、技巧和思想。不仅理论全面、深入,抓住了重点和难点,还包含两个综合性案例,极具实战意义。 《Linux高性能服务器编程》共17章,分为3个部分:第一部分对Linux服务器编程的核心基础——TCP/IP协议进行了深入的解读和阐述,包括TCP/IP协议族、TCP/IP协议,以及一个经典的TCP/IP通信案例;第二部分对高性能服务器编程的核心要素进行了全面深入的剖析,包含Linux网络编程API、高级I/O函数、Linux服务器程序规范、高性能服务器程序框架、I/O复用、信号、定时器、高性能I/O框架库Libevent、多进程编程、多线程编程、进程池和线程池等内容,原理、技术与方法并重;第三部分从侧重实战的角度讲解了高性能服务器的优化与监测,包含服务器的调制、调试和测试,以及各种实用系统监测工具的使用等内容。

2018-05-03

算法艺术与信息学竞赛

最好的算法书,对各种的问题的描述简单易懂,是初学者的不二选择

2015-05-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除