TCP/IP协议
Socket套接字
- Socket:套接字,进程间通信IPC的一种实现,允许位于不同主机(或同一主机上不同进程之间进行通信和数据交换,SocketAPI出现于1983年,4.2 BSD实现
- Socket API:封装了内核中所提供的socket通信相关的系统调用
- Socket Domain:根据其所使用的地址
AF_INET:Address Family,IPv4
AF_INET6:IPv6
AF_UNIX:同一主机上不同进程之间通信时使用 - Socket Type:根据使用的传输层协议
SOCK_STREAM:流,tcp套接字,可靠地传递、面向连接
SOCK_DGRAM:数据报,udp套接字,不可靠地传递、无连接
SOCK_RAW: 裸套接字,无须tcp或udp,APP直接通过IP包通信
套接字类型:
系统调用
套接字相关的系统调用:
HTTP相关术语
资源分类
MIME: Multipurpose Internet Mail Extensions 多用途互联网邮件扩展 /etc/mime.types
HTTP协议介绍
- 每个TCP连接只能发送一个请求,发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接
- 引入了POST命令和HEAD命令
- 头信息是 ASCII 码,后面数据可为任何格式。服务器回应时会告诉客户端,数据是什么格式,即Content-Type字段的作用。这些数据类型总称为MIME 多
用途互联网邮件扩展,每个值包括一级类型和二级类型,预定义的类型,也可自定义类型, 常见Content-Type值:text/xml image/jpeg audio/mp3
http/1.1:1997年1月
- 引入了持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive。对于同一个域名,大多数浏览器允许同时建立6个持久连接
- 引入了管道机制(pipelining),即在同一个TCP连接里,客户端可以同时发送多个请求,进一步改进了HTTP协议的效率
- 新增方法:PUT、PATCH、OPTIONS、DELETE
- 同一个TCP连接里,所有的数据通信是按次序进行的。服务器只能顺序处理回应,前面的回应慢,会有许多请求排队,造成"队头堵塞"(Head-of-line blocking)
- 为避免上述问题,两种方法:一是减少请求数,二是同时多开持久连接。网页优化技巧,如合并脚本和样式表、将图片嵌入CSS代码、域名分片(domain sharding)等
- HTTP 协议不带有状态,每次请求都必须附上所有信息。请求的很多字段都是重复的,浪费带宽,影响速度
- 头信息和数据体都是二进制,称为头信息帧和数据帧
- 复用TCP连接,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,且不用按顺序一一对应,避免了“队头堵塞“,此双向的实时通信称为多工(Multiplexing)
- 引入头信息压缩机制(header compression),头信息使用gzip或compress压缩后再发送;客户端和服务器同时维护一张头信息表,所有字段都会存入这个表,生成一个索引号,不发送同样字段,只发送索引号,提高速度
- HTTP/2 允许服务器未经请求,主动向客户端发送资源,即服务器推送(server push)
HTTP工作机制
工作机制:
提高HTTP连接性能
URI
URL组成
URL示例
网站访问量
- IP(独立IP):即Internet Protocol,指独立IP数。一天内来自相同客户机IP地址只计算一次,记录远程客户机IP地址的计算机访问网站的次数,是衡量网站流量的重要指标
- PV(访问量): 即Page View, 页面浏览量或点击量,用户每次刷新即被计算一次,PV反映的是浏览某网站的页面数,PV与来访者的数量成正比,PV并不是页面的来访者数量,而是网站被访问的页面数量
- UV(独立访客):即Unique Visitor,访问网站的一台电脑为一个访客。一天内相同的客户端只被计算一次。可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过来访电脑的cookies实现的。如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的
示例:
网站访问量
Web服务请求处理步骤
一次完整的http请求处理过程
HTTP服务器应用
http服务器程序
应用程序服务器
市场占有率统计www.netcraft.com
20世纪90年代初,国家超级计算机应用中心NCSA开发1995年开源社区发布apache(a patchy server)
特性:
MPM工作模式
- prefork:多进程I/O模型,每个进程响应一个请求,默认模型一个主进程:生成和回收n个子进程,创建套接字,不响应请求多个子进程:工作work进程,每个子进程处理一个请求;系统初始时,预先生成多个空闲进程,等待请求,最大不超过1024个
- worker:复用的多进程I/O模型,多进程多线程,IIS使用此模型一个主进程:生成m个子进程,每个子进程负责生个n个线程,每个线程响应一个请求,并发响应请求:m*n
- event:事件驱动模型(worker模型的变种)一个主进程:生成m个子进程,每个进程直接响应n个请求,并发响应请求:m*n,有专门的线程来管理这些keep-alive类型的线程,当有真实请求时,将请求传递给服务线程,执行完毕后,又允许释放。这样增强了高并发场景下的请求处理能力
httpd-2.2: event 测试版,centos6默认
httpd-2.4:event 稳定版,centos7默认
httpd功能特性
Httpd安装
安装方式:
CentOS 6程序环境:httpd-2.2
配置文件:
检查配置语法:
CentOS 6 httpd程序环境
httpd配置文件的组成:
Httpd 2.2常见配置
1、显示服务器版本信息
2、修改监听的IP和Port
3、持久连接
4、MPM( Multi-Processing Module)多路处理模块
prefork的默认配置:
worker的默认配置:
5、DSO: Dynamic Shared Object
6、定义'Main' server的文档页面路径
7、定义站点主页面
8、站点访问控制常见机制
可基于两种机制指明对哪些资源进行何种访问控制访问控制机制有两种:客户端来源地址,用户账号
9、<Directory>中“基于源地址”实现访问控制
10、日志设定
11、设定默认字符集
12、定义路径别名
13、基于用户的访问控制
basic认证配置示例:
14、实现用户家目录的http共享
15、ServerSignature On | Off | EMail
16、ServerType inetd | standalone.
17、status页面
18、虚拟主机
httpd-2.4
新特性
CentOS 7 httpd程序环境
配置应用:
(4) 虚拟主机
(4) KeepAlive on
mod_deflate模块
mod_deflate模块
https
https:http over ssl
https实现
http重定向https
将http请求转发至https的URL
HSTS
HSTS:HTTP Strict Transport Security
HSTS preload list
是Chrome浏览器中的HSTS预载入列表,在该列表中的网站,使用Chrome浏览器访问时,会自动转换成HTTPS。Firefox、Safari、Edge浏览器也会采用这个列表
反向代理功能
Sendfile机制
Sendfile机制
http协议
http协议:stateless 无状态
解决http协议无状态方法
http事务:一次访问的过程
http协议
报文语法格式:
http协议状态码分类
http协议
HTTP 首部字段
http协议首部
Set-Cookie首部字段
elinks工具:
httpd自带的工具程序
httpd的压力测试工具
APR
在centos6编译安装httpd-2.4
centos6 编译安装httpd-2.4方法一
centos6 编译安装httpd-2.4方法二
在centos6 编译安装httpd-2.4
转载于:https://blog.51cto.com//
到此这篇chrony服务端口信息(chronyd端口)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-yjs/32222.html