第七十九天 : httpd 基础入门

HTTP
互联网性能提升: 提升硬件和软件
通过协议的支撑来进行交流
资源子网 : 解决双方如何进行数据交换, 对数据格式进行描述, 交换方式的描述
通信子网 : 数据的通用传输模式
Serve : listen
Client : 随时开启随机端口对Serve进行访问
传输层只能表示进程地址(端口) —> 源主机地址到目标主机地址(TCP/IP) —> 源主机的MAC与网关的MAC进行通信—>封装数据包 —-> 网络传输
端口 : 0-1023 (永久分配给应用程序使用) 仅管理员有权限使用
端口 : 1024 – 41951 注册端口, 可能被人为注册, 不严格要求,
端口 : 41952 – 65535 供客户端使用的随机端口 , 称为动态端口或私有端口
由 /proc/sys/ipv4/ip_local_port_range进行定义
裸套接字 : 由应用层直接发往网络层的
BSD Socket API :
SOCK_STREAM, SOCK_DGRAM, SOCK_RAW
地址格式 :
IPv4 : AF_INET ipv4的互联网地址
IPv6 : AF_INET6
Unix_Sock : AF_UNIX 使用文件进行通信(客户端与服务端在同一台主机上通信, 只封装应用层首部 , 存入内存中, 读取通过文件IO来进行通信)
主控进程架构 : 负责接收用户请求, 有请求后生成子进程处理用户请求, 完成后销毁子进程.
补充 : 调优 修改用户同时能打开的文件数量(提高网站并发吞吐量)
内核空间不产生生产力, 用户空间的进程运行用户生产力程序, 提高生产力的对策就是提高CPU在用户空间的所用时间.
http 协议 : 超文本传输协议(设计之初只是用来传输字符)
MINE : 多用途邮件扩展(提升了Http的传输功能, 能传输图片等多媒体格式的文件, 服务器发送的数据要主动通过MINE类型来告知客户端)
条件式请求机制 : 根据时间戳进行数据请求
html : 标签化的语言 ( 都能被http协议进行传递 )
http的实现 :
通信模型 : 请求和响应
http 处理过程 :
1. 建立或处理请求
2. 接收请求
3. 解析请求, 处理请求
4. 加载用户请求的资源
5. 构建响应报文
6. 发送响应报文
7. 记录访问于日志中
web 资源 :
URL : 统一资源定位符;
scheme://host[:port]/url
绝对url 的根 要映射为服务器上对应的路径. (DocumentRoot ” “在配置文件中进行设置)
PV : 页面浏览量
UV : 独立IP浏览量, 有多少个实体用户进行访问
request :
起始行 :
首部(HEADERS) : name: value

response :
< reason phrase >
HEADERS

GET , HEAD(只发响应报文首部, 判断资源是否存在) PUT POST(提交表单和数据) DELETE ( 删除远程服务器的数据 ) OPTIONS (获取支持方法的列表) TRACE (指明资源获取请求的方式 )
响应码
1xx :
2xx : 成功响应
3xx : 重定向响应, 永久或临时
4xx : 错误响应, (客户端请求不存在资源)
5xx : 服务器错误
httpd
特性 :
高度模块化设计 : core + module
DSO : 动态装载卸载模块
MPM : 多道处理模块(实现并发处理用户请求)
prefork : 进程模型 , 每个进程相应一个请求
worker : 线程模型, 每个线程响应一个请求
event : 线程模型, 每个进程响应多个请求, 内部基于多个线程来实现, 基于时间流来进行响应
丰富功能 :
CGI : 支持动态网站
虚拟主机 : 支持多个站点 , 基于端口和主机名
反向代理 : 支持多种协议
负载均衡 : 支持多个调度模式
安装和使用 :
base :
epel : 第三方rpm包打包机构( 官方维护 )
基本法则 :
1. 不要重启系统
2. 不要重启服务 , 先离线再重启服务
3. 不要安装来历不明的程序包
4. 删除rm 命令
5. 执行命令前先进行记录, 进行检查
程序环境 :
主程序文件 : /usr/bin/httpd
模块文件 : /usr/lib64/httpd/modules/*.so
主配置文件 : /etc/httpd/conf.d/*.conf
/etc/conf/httpd.conf
/etc/httpd/conf.modules.d/*.conf
站点默认文档路径 :
/var/www/html/
日志文件路径 :
/var/log/httpd/
access_log : 访问日志
error_log : 错误日志
Unit file :
/usr/lib/systemd/system/httpd.service
自带脚本 :
/usr/bin/apachectl
补充:
Http报文

请求报文格式 ;

响应报文格式 :

Http都以一个起始行作为开始, 说明了

请求报文 : 要做什么

响应报文 : 发生了什么

请求行 : 包含了一个方法和一个请求的URL
响应行 : 承载了状态信息和操作产生的所有结果和数据, 包含了 [ HTTP版本, 数字状态码, 操作状态的文本形式的原因短语]
方法 : 方法用来告诉服务器要做什么

常用的HTTP方法 :

GET : 从服务器获取一份文档

HEAD : 只从服务器获取文档的首部

POST : 向服务器发送要处理的数据

PUT : 将请求的主题存到服务器上

TRACE : 对报文进行追踪

OPTIONS : 决定可以在服务器上执行哪些方法

DELETE : 从服务器上删除一份文档

状态码 :

常见状态码 :

100-199 : 100-101(已定义) 信息提示

200-299 : 200-206(已定义) 成功

300-399 : 300-305(已定义) 重定向

400-499 : 400-415(已定义) 客户端错误

500-599 : 500-505(已定义) 服务端错误

原因短语 :

为状态码提供了文本形式的解释

版本号 :

以HTTP/x.y 的形式出现在请求和响应的报文中

告知对方使用何种协议进行处理

配置文件解析 :

Listen [IP:]port 修改端口需要重启服务, 在原有的基础上加监听的端口的话, 重载服务就可以了, 浏览器默认与服务端的80端口通信, 其他端口需自行指定.

KeepAlive on|off 保持连接, 保持连接不断开, 继续等待客户端请求其他资源

MaxKeepAliveRequest 10 最大保持连接数量

KeepAliveTimeout 10 保持连接超时时长(可以用ms来定义)

LoadModule mod_name mod_path 加载模块, 2.4的httpd将模块定义到了单独的配置文件中.

DirectoryIndex filename1,filename2 定义默认主页页面

DocumentRoot “/path”

ServerName www.nextkara.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值