http协议

Web Service概述

web服务时一种应用程序的服务,它所提供的最主要的信息是一种超文本标记语言(HTML)、多媒体资源(如:视频、图片、音乐等)。HTML是一种纯文字的文本信息,通过所谓的标签来规范所要显示的内容格式,在客户端通过浏览器的形式对HTML及多媒体资源进行解析,然后呈现在终端上。主要由httphttps协议实现

http协议概述

HTTP是一个属于应用层的面向对象的协议,B/S架构,由于其简单、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断的完善和扩展。

http的协议版本

HTTP/0.9
HTTP/1.0:cache,MIMEmethod
       MIMEMultiurpose Internet Mail Extesion
       methodGET HEAD POST PUT DELETE TRACE OPTIONS
HTTP/1.1:增强了缓存功能
HTTP/2.0

http协议的特点

1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器练习的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型有Centent-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事物处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

PORT

服务所使用的端口信息,http服务默认为80端口,https默认为443端口,ftp默认为21端口,而这些默认的端口是可省略的,协议自身会去识别,只有当认为更改服务器服务监听端口时需要在客户端手动指定端口,否则会指向默认端口

IANA

IANA(The Internet Assigned Numbers Authority,互联网数字分配机构)是负责协调一些使Internet正常运作的机构。同时,由于Internet已经成为一个全球范围的不受集权控制的全球网络,为了使网络在全球范围内协调,存在对互联网一些关键的部分达成技术共识的需要,而这就是IANA的任务。 
0-1023:众所周知,永久地址分配给固定的应用使用,特权端口; 
1024-41951:为注册端口,但要求不是特别严格,分配给程序注册为某应用使用; 3306/tcp, 11211/tcp 
41952+:客户端程序随机使用的端口,动态端口,或私有端口;其范围定义在/proc/sys/net/ipv4/ip_local_port_range

套接字

源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。

套接字类型

BSD Socket:IPC的一种实现,允许位于不同主机(也可以使同一主机)上的进程之间进行通信
       Socket API(封装了内核中的socket通信相关的系统调用)
           SOCK_STREAM: tcp套接字
           SOCK_DGRAM: UDP套接字
           SOCK_RAW: raw套接字
根据套接字所使用的地址格式,Socket Domain
           AF_INET:Address Family,IPv4
           AF_INET6:IPv6
           AF_UNIX:同一主机上的不同进程间基于socket套接字通信使用的一种地址; Unix_SOCK

TCP协议状态类型

CLOSED:关闭连接
LISTEN:监听
SYN_SENT:请求建立连接
SYN_RECV:接收请求连接
ESTABLISHED:已建立的连接
FIN_WAIT1:主动关闭tcp连接,等待对方响应
CLOSE_WAIT:在关闭连接之前还有数据要发送或其它事物
FIN_WAIT2:被动关闭tcp连接
LAST_ACK:等待对方确认关闭连接
TIMEWAIT:当主动发起关闭连接请求后,则进入TIME_WAIT

TCP协议的特性:

1.建立连接:三次握手
2.将数据打包成段:校验和(CRC32)
3.确认、重传及超时
4.排序:逻辑序号
5.流量控制:滑动窗口算法
6.拥塞控制:慢启动和拥塞避免算法

一次完整的http请求处理过程

(1)建立或处理连接:接收请求或拒绝请求
(2)接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程
(3)处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息
(4)访问资源:获取请求报文中请求的资源
(5)构建响应报文
(6)发送响应报文
(7)记录日志

接收请求的模型

并发访问响应模型:
   单进程I/O模型:启动一个进程处理用户请求; 这意味着,一次只能处理一个请求,多个请求被串行响应
   多进程I/O结构:并行启动多个进程,每个进程响应一个请求
   复用的I/O结构:一个进程响应n个请求
       多线程模式:一个进程生成n个线程,一个线程处理一个请求
       事件驱动(event-driven):一个进程直接n个请求
   复用的多进程I/O结构:启动多个(m)个进程,每个进程生成(n)个线程
       响应的请求的数量:m*n

一次http事物

http请求报文首部
http响应报文首部

请求报文首部的格式:request
   <method> <URL> <VERSION>
   HEADERS(name value)

   <request body>

响应报文首部的格式:response
   <version> <status> <reason-phrase>
   HEADERS(name value)

   <entity-body>

method:请求方法,标明客户端希望服务器对资源执行的动作
   GET, HEAD, POST
version:
   HTTP/<major>.<minor>
status:
   三位数字:如200, 301, 302, 404, 502; 标记请求处理过程中发生的情况
reason-phrase:
   状态码所标记的状态的简要描述
headers:
   每个请求或响应报文可包含任意个首部;每个首部都有首部名称,后面跟一个冒号,而后跟上一个可选空格,接着是一个value
entity-body:请求时附加的数据或响应时附加的数据
method
GET:从服务器获取一个资源
HEAD:只获取一个资源的首部,而不是内容
POST:向服务器发送要处理的数据
PUT:将请求的主体部分存储在服务器上
DELETE:请求删除服务器上指定的文档
TRACE:追踪请求到达服务器中间经过的代理服务器
OPTIONS:请求服务器返回对指定资源支持使用的请求方法;
status
1xx:100-101,信息提示:
2xx:200-206,成功
3xx:300-305,重定向
4xx:400-415,错误类信息,客户端错误
5xx:500-505,错误类信息,服务端错误

常用的状态码:
   200:成功,请求的所有数据通过响应报文的entity-body部分发送:OK
   301:请求的URL指向的资源已被删除;但在响应报文中通过首部Location指明了资源现在所处的新位置;Moved Permanently
   302:与301相似,但在响应报文中通过Location指明资源现在所处临时新位置;Found
   304:客户端发出了条件是请求,但在服务器上的资源未曾发生改变,则通过响应此响应状态码通知客户端:Not Modified
   401:需要输入账号和密码认证方能访问资源:Unauthorized
   403:请求被禁止;Forbidden
   404:服务器无法找到客户端请求的资源:Not Found
   500:服务器内部错误;Internet Server Error
   502:代理服务器从后端服务器收到了一条伪响应;Bod Gateway
headers
格式:
   name:value

首部的分类:
   通用首部
   请求首部
   响应首部
   实体首部
   扩展首部

   通用首部:
       Date:报文的创建时间
       Connection:连接状态,如keep-alive,close
       Via:显示报文经过的中间节点
       Cache-Control:控制缓存
       Pragma

   请求首部:
       Accept:通知服务器自己可接收的媒体类型
       Accept-Charset:声明自己可接收的字符集
       Accept-Encoding:可接收的编码格式,如gzip
       Accept-Language:接收的语言

       Client-IP:客户端IP地址
       Host:请求的服务器名称和端口号
       Referer:包含当前正在请求的资源的上一级资源,表示从哪个页面跳转至此页面
       User-Agent:客户端代理(浏览器类型)

       条件式请求首部:
           Expect:
           If-Modified-Since:自从指定的时间之后,请求的资源是否发生过修改
           If-Unmodified-Since:自从指定的时间之后,请求的资源是否没有被修改过
           If-None-Match:本地缓存中存储的文档的ETag标签是否与服务器文档的ETag不匹配
           If-Match:本地缓存中存储的文档的ETag标签是否与服务器文档的ETag匹配

       安全请求首部:
           Authorization:向服务器发送认证信息,如账号和密码
           Cookie:客户端向服务器发送cookie
           Cookie2

       代理请求首部:
           Proxy-Authorization:向代理服务器认证

   响应首部:
       信息性:
           Age:响应持续时长
           Server:服务器程序软件名称版本

       协商首部:某资源有多种表示方法时使用
           Accept-Ranges:服务器可接受的请求范围类型
           Vary:服务器查看的其它首部列表

       安全响应首部:
           Set-Cookie:向客户端设置cookie
           Set-Cookie2
           WWW-Authentication:来自服务器的对客户端的质询认证表单

   实体首部:
       Allow:列出对此实体可使用的请求方法
       Location:告诉客户端真正的实体位于何处

       Content-Encoding:服务器表明了自己的压缩方法
       Content-Language:服务器告诉客户端自己响应的语言
       Content-Length:主体的长度
       Content-Location:实体真正所处的位置
       Content-Type:主体的对象类型

       缓存相关:
           ETag:实体的扩展标签
           Expires:实体的过期时间
           Last-Modified:最后一次修改的时间            

web资源

静态资源(无须服务端做出额外处理):.jpg, .png, .gif, .html, .txt, .js, .css, .mp3, avi
动态资源(服务端需要通过执行程序做出处理,发送给客户端的是程序的运行结果):.php, .jsp
注意:一个页面中展示的资源可能有多个;每个资源都需要单独请求

URL

Uniform Resouce Locator:用于描述服务器某特定资源的位置
   scheme://host[:port]/URL
       URL的根通常要映射为文件系统上的某路径
           DocumentRoot /var/www/html
               /index.html --> /var/www/html/index.html
               /images/logo.jpg --> /var/www/html/images/logo.jpg

           Alias /images/ /data/imgs/
               /images/logo.jpg --> /data/imgs/logo.jpg
               /images/a/3.gif --> /data/imgs/a/3.gif

   基本语法:<scheme>://<user>:<password>@<host>:<port></path>;<params>?<query>#<frag>
       params:参数
           http://www.magedu.com/bbs/hello;gender=f
       query:查询
           http://www.magedu.com/bbs/item.php?username=tom&title=abc
       frag:标记

http服务器程序

httpd(apache)
Nginx
lighttpd

httpd的特性

高度模块化:core modules + standard modules + 3rd party modules
DSO:dynamic shared object
MPM:Multipath Processing Modules(多路处理模块)
   prefork:多进程模型,每个进程响应一个请求
       一个主进程:负责生成子进程及回收子进程
; 负责创建套接字; 负责接收请求,并将其派发给某子进程进行处理
       n个子进程:每个子进程处理一个请求
       工作模型:会预先生成几个空闲进程,随时等待用于响应用户请求; 最大空闲和最小空闲
   worker:多进程多线程模型,每线程处理一个用户请求
       一个主进程:负责生成子进程
       多个子进程:每个子进程负责生成多个线程
       每个线程:负责响应用户请求
       并发响应数量:m*n
           m:子进程数量
           n:每个子进程所能创建的最大线程数量
   event:事件驱动模型,多进程模型,每个进程响应多个请求
       一个主进程:负责生成子进程; 负责创建套接字; 负责接收请求,并将其派发给某子进程进行处理
       子进程:基于事件驱动机制直接响应多个请求

       httpd-2.2:仍为测试使用模型
       httpd-2.4event可生产环境中使用

httpd的程序版本

httpd 1.3:官方已经停止维护
httpd 2.0
httpd 2.2:
httpd 2.4:目前最新稳定版
安装httpd程序
rpm包:CentOS发行版中直接提供
编译安装:定制新功能,或其它原因
CentOS 6
程序环境:
   配置文件:
       /etc/httpd/conf/httpd.conf
       /etc/httpd/conf.d/*.conf
   服务脚本:
       /etc/rc.d/init.d/httpd
       脚本配置文件:/etc/sysconfig/httpd
   主程序文件:
       /usr/sbin/httpd
       /usr/sbin/httpd.event
       /usr/sbin/httpd.worker
   日志文件:
       /var/log/httpd:
           access_log:访问日志
           error_log:错误日志
   站点文档:
       /var/www/html
   模块文件:
       /usr/lib64/httpd/modules

   服务控制和启动:
       chkconfig httpd on | off
       service {start|stop|restart|status|reload|configtest} httpd
CentOS 7
程序环境:
   配置文件:
       /etc/httpd/conf/httpd.conf
       /etc/httpd/conf.d/*.conf
       模块相关配置文件:/etc/httpd/conf.modules.d/*.conf
   systemctl unit file:
       /usr/lib/systemd/system/httpd.service
   主程序文件:
       /usr/sbin/httpd
           httpd-2.4支持MPM的动态切换
   日志文件:
       /var/log/httpd
           access_log:访问日志
           error_log:错误日志
   站点文档:
       /var/www/html
   模块文件路径:
       /usr/lib64/httpd/modules

   服务控制和启动:
       systemctl enable|disable httpd.service
       systemctl {start|stop|restart|status} httpd.service

httpd-2.4的常用配置

主配置文件:/etc/httpd/conf/httpd.conf
   ### Section 1: Global Environment
   ### Section 2: 'Main' server configuration
   ### Section 3: Virtual Hosts

配置格式:
   directive value
       directive:不区分字符大小写
       value:为路径时,是否区分字符大小写,取决于文件系统

   配置修改完成后:
       (1)测试语法
           httpd -t
       (2)让服务程序重载配置文件
           CentOS 6: ~]# service httpd reload
           CentOS 7: ~]# systemctl reload httpd.service
1.修改监听的IP和PORT
配置项:Listen [IP]:PORT

(1)省略IP表示为0.0.0.0
(2)Listen指令可重复出现多次
   Listen 80
   Listen 8080
(3)修改监听socket,重启服务进程可生效
2.持久连接
Persistent Connection:tcp连接建立后,每个资源获取完成后不全断开连接,而是继续等待其它资源请求的进行
   如何断开?
       数量限制
       时间限制

       副作用:对并发访问量较大的服务器,长连接机制会使得后续某些请求无法得到正常 响应    
       折衷:使用较短的持久连接时长,以及较少的请求数量

   KeepAliv On|Off     # 是否开启持久连接
   KeepAlivTimeout 15   # 定义超时时长
   MaxKeepAliveRequests 100   # 超出此请求数则断开

测试:
   telnet WEB_SERVER_IP PORT
   GET /URL HTTP/1.1
   Host: WEB_SERVER_IP    
3.MPM
httpd-2.2不支持同时编译多个MPM模块,所以只能编译选定要使用的那个; CentOS 6的rpm包为此专门提供了三个应用程序文件,http(prefork),http.worker
httpd.event,分别用于实现对不同的MPM机制的支持; 确认现在使用的是哪个程序文件的方法
   ps aux | grep httpd

默认使用的为/usr/sbin/httpd, 其为prefork的MPM模块
   查看httpd程序的模块列表
       查看静态编译的模块
           # httpd -l
       查看静态编译及动态编译的模块
           # httpd -M

更换使用httpd程序,以支持其它MPM机制;
   /etc/sysconfig/httpd
       HTTPD=/usr/sbin/httpd.{worker,event}

注意:重启服务进程方可生效

MPM配置:
   prefork的配置
       <IfModule prefork.c>
       StartServers       8   #启动服务器进程的数量
       MinSpareServers    5   #保持空闲的服务器进程的最少数量
       MaxSpareServers   20   #保持空闲的服务器进程的最大数量
       ServerLimit      256   #用于服务器的寿命MaxClients最大值
       MaxClients       256   #允许启动的服务器进程的最大数量
       MaxRequestsPerChild  4000  #服务器进程服务的最大请求数
       </IfModule>    

   worker的配置
       <IfModule worker.c>
       StartServers         4   #子进程初始数量
       MaxClients         300   #最大并发数
       MinSpareThreads     25   #保持空闲的最小工作线程数
       MaxSpareThreads     75   #保持空闲的最大工作线程数
       ThreadsPerChild     25   #在每个服务器进程中的恒定数目的工作线程
       MaxRequestsPerChild  0   #服务器进程服务的最大请求数
       </IfModule>
4.DSO
显示已装载的模块:
   httpd -M
配置指定实现模块加载
   LoadModule <mod_name> <mod_path>

   模块文件路径可使用相对路径:
       相对于ServerRoot (默认/etc/httpd)
5.定义’Main’ server的文档页面路径
DocumentRoot "/PATH/TO/DIRECTORY"

文档路径映射:
   DocumentRoot指向的路径为URL路径的起始位置
       其相当于站点URL的根路径
           (filesystem)/web/host1/index.html --> (URL)/index.html

定义服务器名称
   ServerName SERVER_NAME
6.站点访问控制
可基于两种机制指明对哪些资源进行何种访问控制

文件系统路径:
   针对指定的目录做访问控制
       <Directory "">
           ...
       </Directory>

   针对指定的单个文件做访问控制
       <Files "">
           ...
       </Files>

   基于正则表达式匹配
       <FilesMatch "PATTERN">
           ...
       </FilesMatch>

URL路径
   <Location "">
       ...
   </Location>

   <LocationMatch ~ "">
       ...
   </LocationMatch>

<Directory>中"基于源地址"实现访问控制
   (1)Options
       后跟1个或多个以空白字符分隔的"选项"列表
           Indexes:指明的URL路径下不存在与定义的主页面资源相符的资源文件时,返回索引列表给用户
           FollowSymLinks:允许跟踪符号链接文件所指向的源文件
           ExecCGI:是否允许运行CGI脚本
           None
           All

   (2)AllowOverride
       与访问控制相关的哪些指令可以放在.htaccess文件(每个目录下都可以有一个)中
       AllowOverride表示是否允许目录中.htaccess文件中的配置来覆盖当前配置段中的配置
           All
           None
           Options FileInfo AuthConfig Limit

   基于源地址的访问控制
       允许所有地址访问:Require all granted
       拒绝所有地址访问:Require all denied

       <RequireAll>

       </RequireAll>

       基于IP控制:
           Require ip ADDRESS
           Require not ip ADDRESS
               ADDRESS:
                   ip
                   network:
                       10.1.0.0/255.255.0.0
                       10.1.0.0/16
                       10.1
       基于主机名控制:
           Require host HOSTNAME
           Require not host HOSTNAME
               HOSTNAME:
                   FQDN
                   DOMAIN.TLD

http2.2配置
   order和allow、deny
       order:定义生效次序; 写在后面的表示默认法则

       Allow from, Deny from
           来源地址:
               IP
               NetAddr:
                   172.16
                   172.16.0.0
                   172.16.0.0/16
                   172.16.0.0/255.255.0.0  
7.定义站点主页面
DirectoryIndex index.html index.html.var
8.定义路径别名
格式:
   Alias /URL/ "/PATH/TO/SOMEDIR"

DocumentRoot "/www/htdocs"
   http://www.magedu.com/download/setup.exe
       /www/htdocs/download/setup.exe

Alias /download/ "/rpms/pub"
   http://www.magedu.com/download/setup.exe
       /rpms/pub/setup.exe

   http:
//www.magedu.com/images/logo.png
       /www/htdocs/images/logo.png
9.设定默认字符集
AddDefaultCharset UTF-8

中文字符集:GBK, GB2312, GB18030
10.日志设定
日志类型:访问日志和错误日志
错误日志:
   ErrorLog logs/error_log
   LogLevel warn
       Possible values include: debug, info, notice, warn, error, crit,alert, emerg.

访问日志:
   LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
   CustomLog logs/access_log combined

       %h:客户端的IP地址
       %l:Remote User,通常为一个减号("_")
       %u:Remote user (from auth; may be bogus if return status (%s) is 401); 非为登录访问时,其为一个减号
       %t:服务器收到请求时的时间
       %r:First line of request,即表示请求报文的首行;记录了此次请求的"方法""URL"以及协议版本
       %>s:响应状态码
       %b:响应报文的大小,单位是字节; 不包括响应报文的http首部
       %{Referer}i:请求报文中首部"referer"的值;即从哪个页面中的超链接跳转至当前页面的
       %{User-Agent}i:请求报文中首部"User-Agent"的值; 即发出请求的应用程序
11.基于用户的访问控制
认证质询:
   WWW-Authenticate:响应吗为401,拒绝客户端请求,并说明要求客户端提供账号和密码

认证:
   Authorization:客户端用户填入账号和密码后再次发送请求报文; 认证通过时,则服务器发送响应的资源

   认证方式有两种:
       basic:明文
       digest:消息摘要认证

安全域:需要用户认证后方能访问的路径; 应该通过名称对其进行标识,以便于告知用户认证的原因

用户账号和密码存放于何处?
   虚拟账号:仅用于访问某服务时用到的账号

   存储:
       文本文件
       SQL数据库
       LDAP目录存储

basic认证配置示例:
   (1)定义安全域
       <Directory "">
           Options None
           AllowOverride None
           AuthType Basic
           AuthName "String"
           AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE"
           Require user username1 username2...
       </Directory>

       允许账号文件中的所有用户登录访问:
           Require valid-user

   (2)提供账号和密码存储(文本文件)
       使用专用命令完成此类文件的创建及用户管理
           htpasswd [options] /PATH/TO/HTTPD_USER_PASSWD_FILE username
               -c:自动创建此处指定的文件,因此,仅应该在此文件不存在时使用
               -m:md5格式加密
               -s:sha格式加密
               -D:删除指定用户

   另外:基于组账号进行认证
       (1)定义安全域
           <Directory "">
               Options None
               AllowOverride None
               AuthType Basic
               AuthName "String"
               AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE"
               AuthGroupFile "/PATH/TO/HTTPD_GROUP_FILE"
               Require group grpname1 grpname2...
           </Directory>

       (2)创建用户账号和组账号文件

           组文件:每一行定义一个组
               GRP_NAME: username1 username2 ...

httpd-2.2与httpd-2.4的不同之处

MPM:
   prefork:进程模型,两级结构,master/worker, 每worker处理一个请求;
   worker:线程模型,三级结构,master/worker/thread,每thread处理一个请求;
   event:事件驱动的线程模型,两级结构,master/worker,每worker响应多个请求;

   httpd-2.2的MPM模块为static模块,而非shared模块;
       /etc/sysconfig/httpd
       HTTPD=/usr/sbin/{httpd|httpd.worker|httpd.event}

       <IfModule prefork.c>
       StartServers       8
       MinSpareServers    5
       MaxSpareServers   20
       ServerLimit      256
       MaxClients       256
       MaxRequestsPerChild  4000
       </IfModule>        

       <IfModule worker.c>
       StartServers         4
       MaxClients         300
       MinSpareThreads     25
       MaxSpareThreads     75
       ThreadsPerChild     25
       MaxRequestsPerChild  0
       </IfModule>

基于IP的访问控制机制:
   httpd-2.4:
       require ip, require not ip, require host, require not host

   httpd-2.2
       allow from, deny from

       order allow,deny, order deny,allow

基于主机名的虚拟主机:
   httpd-2.2:须使用NameVirtualHost;
   httpd-2.4:无须使用;

各映射的本地文件系统路径内的资源:
   httpd-2.4:须做显式授权
   httpd-2.2:无须显式授权

原创文章,作者:zhai796898,如若转载,请注明出处:http://www.178linux.com/55200

(0)
zhai796898zhai796898
上一篇 2016-10-28
下一篇 2016-10-28

相关推荐

  • 文本处理工具sed

    处理文本的工具sed     stream EDitor,行编辑器     sed是一种流编辑器,他一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,成为“模式空间”(pattern space),接着用sed命令处理缓存区中的内容,处理完成后,把缓冲区的内容送往屏幕。…

    Linux干货 2016-08-10
  • Bob大叔和Jim Coplien对TDD的论战

    今年春节时,我写了一篇《TDD并不是看上去的那么美》,在这篇文章中我列举了一些关于使用TDD的一些难点和对TDD的质疑,后来出现了一些争论(可参见那篇文章的评论),以及Todd同学的《TDD到底美不美》,还有infoQ中文上的那个几乎没有营养离线讨论。今天,有网友给我推来一个英文版infoQ的视频——“Coplien and Martin Debate TD…

    Linux干货 2016-08-15
  • Linux上文件管理命令、元素据及时间戳、bash的工作特性回显和命令展开、定义别名,命令引用。

    文件管理命令: mkdir 创建空目录 语法: mkdir [选项]…目录… 选项: -P:逐层创建目录。 -v:显示过程。 -m:直接给定权限。 注意:路径的基名为命令作用对象。基名路径必须存在。 示例 创建/tmp/x1/a/a1和/tmp/x1/b rmdir 移除空目录 语法 rmdir [选项]…目录&#8230…

    Linux干货 2017-12-10
  • OpenSSH的应用和利用OpenSSL创建私有CA签证给httpd服务器开起https

    一、OpenSSH     OpenSSH与SSH协议是远程登录的首选连接工具。它加密所有流量,以消除窃听,连接劫持和其它攻击。OpenSSH常常被误认以为与OpenSSL有关系,但实际上这两个项目的有不同的目的,不同的发展团队,名称相近只是因为两者有同样的软件发展目标──提供开放源代码的加密通讯软件。  &…

    Linux干货 2016-04-24
  • MySQL慢日志监控脚本实例剖析

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1577326        公司线上的 MySQL 慢日志,之前一直没有做好监控。趁着上周空闲,我就把监控脚本写了下,…

    Linux干货 2016-08-15
  • 请使用命令行展开功能来完成以下练习

    (1)、创建/tmp目录下的:ac, ad, bc, bd ]# mkdir -p /tmp/{a,b}_{c,d} 或者: ]# touch /tmp/{a,b}_{c,d} (2)、创建/tmp/mylinux目录下的: ]# mkdir -pv /tmp/mylinux/{bin,boot/gtub,dev,etc/{rc.d/init.d,sysco…

    Linux干货 2016-11-06