httpd简介
2016-06-29 13:19
555 查看
一、TCP及socket通信原理1、Port number(IANA,互联网地址授权机构规定)
TCP:传输控制协议,面向连接的协议;通信前需要建立虚拟链路,结束后拆除链路。
UDP:User Datagran Protocol,无连接的协议。
0-1023:众所周知,永久的分配给固定的应用使用,特权端口(22/ssh,80/http)。
1024-41951:亦为注册端口,但要求并不是特别严格,分配给程序注册为某应用使用(11211/tcp,3306/tcp)
41952-65535:客户端程序随机使用的端口:动态端口,或私有端口;其范围的定义在文件中:(/proc/sys/net/ipv4/ip_local_port_range)。
2、Socker:IPC的一种实现,允许位于不同主机(甚至同一主机)上不同进程之间进行通信。
Socket API(封装了内核中的socket通信相关的系统调用)
(1)、根据传输层协议分类:
SOCK_STREAM:TCP套接字
SOCK_DGRAN:UDP套接字
SOCK_RAW:裸(raw)套接字
(2)、根据套接字所使用的地址格式,Socket Domain:
AF_INET:Address Family,IPv4的地址
AD_INET6:IPv6的地址
AF_UNIX:同一主机上不同进程之间通信时使用
(3)、套接字相关的系统调用:
Socket():创建一个套接字
bind():绑定
listen():监听
accept():接受请求
connect():请求连接建立
write():发送
read():接收
3、TCP协议的特性
建立连接:三次握手
将数据打包成段:校验和(CRC-32)
确认、重传以及超时
排序:逻辑序号
流量控制:滑动窗口算法
拥塞控制:慢启动和拥塞避免算法
4、TCP FSM:TCP Finite State Machine,有限状态机
CLOSED、LISTEN、SYN_SENT、SYN_RECV、ESTABLISHED、FIN_WAIT1、 CLOSE_WAIT、FIN_WAIT2、LAST_ACK
二、httpd协议及Web基本原理1、http:hyper text transfer protocal,超文本传输协议
C/S架构:客户端-服务器,实现该协议的程序有httpd,nginx,lighttpd......
工作模式:一次httpd事务:请求<-->响应
http请求报文:http request
http响应报文:http response
2、http协议版本
1)HTTP/0.9:原型版本只能传输文本文件,仅有GET方法传输到客户端
2)HTTP/1.0:第一个广发使用的版本,支持MIME机制、cache支持、method(请求方法)
MIME:Multipurpose Internet Mail Extesion多用途互联网邮件扩展,支持非文本编码传输后再解码还原
3)HTTP/1.1:增强了缓存功能
4)HTTP/2.0:借鉴spdy对1.0多方面改进,大大提升性能
SPDY是Google开发的基于TCP的应用层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验。
SPDY对HTTP协议的增强。新协议的功能包括数据流的多路复用、请求优先级以及HTTP报头压缩。
3、Web资源:Web resources
三、httpd服务器程序1、httpd:apache纯粹的静态服务器
版本:1.3、2.0、2.2、2.4。centos6默认使用2.2;centos7默认使用2.4
a patchy server(一个充满补丁的服务器)
ASF:apache software foundation(Apache软件基金会)最早的项目,官方站点:httpd.apache.com
2、httpd的特性
高度模块化:core + modules
DSO:Dynamic Shared Object
MPM:Multipath Processing Modules
profork:多进程模型,每个进程响应一个请求:
一个主线程:复制生成n个子进程,子进程也称为工作进程,每个子进程处理一个用户请求;即便没有用户请求,也会预先生成多个空闲进程,随时等待请求到达:最大不会超过1024个。
worker:事件驱动模型,每个线程响应n个请求;
一个主进程,生成m个子进程,每个子进程负责生成多个线程,每个线程响应一个请求;
m进程,n线程:m * n
event:事件驱动模型,每个线程响应n个请求;
一个主进程,生成m个子进程,每个子进程直接响应n个请求 m * n
3、httpd的功能特性
1)、通用首部
相关文章推荐
- 无线局域网络简介一
- 无线局域网络简介二
- Lua教程(十七):C API简介
- PHP Session机制简介及用法
- 解读ASP.NET 5 & MVC6系列教程(1):ASP.NET 5简介
- BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
- Redis教程(一):Redis简介
- Java语言简介(动力节点Java学院整理)
- 无线局域网络简介
- angular2使用简单介绍
- markdown简介和语法介绍
- mysql性能监控工具Innotop简介及配置
- Windows PowerShell是啥?看完本文你就懂它了
- 零基础学习AJAX之AJAX的简介和基础
- JSON简介以及用法汇总
- Node.js 学习笔记之简介、安装及配置
- MongoDB系列教程(二):MongoDB简介
- angular简介和其特点介绍
- Apache Rewrite 规则详解