http协议与httpd安装

http协议版本及其区别

http 0.9: 原型版本,功能简陋,只有一个get命令,服务器只能回应html格式数据

http 1.0: 每个tcp只能发送一个请求,发送数据完成,连接就关闭,如果还要请求其他资源,就必须重新建立连接,数据可以是任何格式,使用MIME技术来识别不同数据格式。

http 1.1: 引入了持久连接,即tcp连接默认不关闭,可以别多个请求复用,对于同一个域名,大多数浏览器允许同时建立6个持久连接引入了管道机制,即在同一个TCP连接里,客户端可以同时发送多个请求,进一步改进了HTTP协议的效率

http1.0和http1.1的区别:
1,宽带优化及网络连接的使用,http1.0 中有一些带宽浪费的现象,例如:客户端只是需要某个对象的一部分,而服务器却将整个对象传输过来了,不支持断点续传功能,http1.1 在请求头部引入了range头域,他允许只请求资源的某个部分,方便了开发者自由的选择和带宽优化
2,错误通知的管理,在http1.1 中新增了24个状态响应码,,如409表示请求的资源与资源当前状态冲突;410表示服务器上的某个资源被永久性的删除
3,host头处理,在http1.0 中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中URL没有传递主机名。但随着虚拟主机技术的发展,一台物理服务器上可以存在多个虚拟主机,它们共享一个IP地址。
而http1.1 的请求信息和响应信息都支持host头域,且请求消息中没有host头域会报告错误400
4,持久连接,http1.1 支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,弥补了http1.0 每次请求都要创建新连接的缺点

http1.0 和http1.1 存在的问题
1,在传输数据中,所有传输内容都是明文,客户端与服务器端都无法验证对方的身份,无法保证数据的安全性
2,在使用时,header里携带的内容过大,增加了传输的成本,并且每次请求header基本不怎么变化,尤其在移动端增加用户流量
3,虽然HTTP1.1支持了keep-alive,来弥补多次创建连接产生的延迟,但是keep-alive使用多了同样会给服务端带来大量的性能压力,可能会影响性能,因为它在文件被请求之后还保持了不必要的连接时长

浏览器访问网站的全过程

1,DNS解析:DNS将域名解析出网站的ip地址

2,tcp连接: 通过tcp协议三次握手建立连接
  
3,http请求: 
  1,建立连接,接收或拒绝连接请求
  2,接收请求,接收客户端的请求
  3,处理请求,服务器对请求报文进行解析,获取的请求的资源和请求方法,对请求进行处理
  4,访问资源,服务器获取请求报文中请求的资源web服务器,即存放了web资源的服务器,负责向请求者提供对方请求的静态资源,或动态运行后生成的资源
  5,构建响应报文,一旦Web服务器识别了资源,就执行请求方法中描述的动作,并返回响应报文。
  6,发送响应报文
  7,记录日志,当事务结束时,Web服务器会在日志文件中添加一个条目,来描述已执行的事务

4,浏览器的渲染原理 

Apache介绍

http 服务基于 C/S 结构
apache
http协议,应用层协议,默认端口号: tcp/80

apache特性:
高度模块化
DSO:Dynamic Shared Object 动态加载/卸载
MPM:multi-processing module 多路处理模块

MPM工作模式

MPM工作模式:prefork,worker,event

prefork: 多进程IO模型,每个进程响应一个请求,centos7使用
  一个主进程: 生成和回收子进程,不响应请求
  多个子进程: 工作work进程,每个子进程处理一个请求,系统初始时,预先生成多个空闲进程,等待请求
  特点: 最稳定,但占用资源,不适合高并发场景

worker: 复用的多进程IO模型,多进程多线程,IIS使用
  一个主进程: 生成多个子进程,每个字进程生成多个线程,每个线程响应一个请求,并发响应
  特点: 响应更多请求,承受高并发,使用keep-alive的长连接方式,某个线程会一直被占据,即使没有传输数据,也需要一直等待到超时才会被释放。
  
event:事件驱动模型,CentOS8 默认模型  
   一个主进程: 生成多个子进程,每个子进程负责生个多个线程,每个线程响应一个请求,并发响应。有一个专门的监控进程来管理keep-alive类型的线程,当有请求时,将请求传递给服务线程,执行完毕后,又允许释放。这样增强了高并发场景下的请求处理能力
   特点: 解决了keep-alive场景下,长期被占用的线程的资源浪费问题,单线程响应多请求,高并发,占据更少的内存

httpd安装:yum安装

yum install httpd -y
systemctl start httpd
curl 10.0.0.8

httpd安装: 编译安装

APR: Apaceh可移植运行库,主要为上层的应用程序提供一个可以跨越系统平台使用的底层支持接口库
安装httpd-2.4,依赖于apr-1.4+, apr-util-1.4+

安装过程

yum install -y gcc pcre-devel openssl-devel expat-devel autoconf libtool gcc-c++ wget make
wget http://us.mirrors.quenda.co/apache//httpd/httpd-2.4.41.tar.bz2
https://downloads.apache.org/apr/apr-1.7.0.tar.gz
wget https://downloads.apache.org/apr/apr-util-1.6.1.tar.gz

tar xvf httpd-2.4.41.tar.bz2 -C /opt/
tar xvf apr-1.7.0.tar.gz -C /opt/httpd-2.4.41/srclib/
tar xvf apr-util-1.6.1.tar.gz -C /opt/httpd-2.4.41/srclib/

cd /opt/httpd-2.4.41/srclib/
mv apr-1.7.0/ apr
mv apr-util-1.6.1/ apr-util
cd ..

./configure --prefix=/opt/httpd24 \
 --enable-so \
 --enable-ssl \
 --enable-cgi \
 --enable-rewrite \
 --with-zlib \
 --with-pcre \
 --with-included-apr \
 --enable-modules=most \
 --enable-mpms-shard=all \
 --with-mpm=prefork

make && make install

echo 'PATH=/opt/httpd24/bin:$PATH' > /etc/profile.d/httpd.sh
useradd -s /sbin/nologin -r apache
vim /opt/httpd24/conf/httpd
  user apache
  group apache
source /etc/profile.d/httpd.sh
apachectl start
curl 10.0.0.8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Re:计算机网络  应用层 诸多协议 实验环境搭建  DNS、DHCP、HTTP、FTP、Telnet、RDP、STMP、POP3、IMAP======================# 应用层 诸多协议 域名系统 DNS 动态主机配置协议 DHCP 超级文本传输协议 HTTP 文件传输协议 FTP Telnet 协议和 RDP(远程桌面协议) 发送电子邮件的协议 SMTP  接收电子邮件的协议 POP3 和 IMAP # 什么是域名 整个Internet网站和各种服务器数量众多,各个组织的服务器都需要给一个名称,这就很容易重名。如何确保Internet上的服务器名称在整个Internet唯一呢?这就需要Internet上有域名管理认证机构进行统一管理。如果你的公司在互联网上有一组服务器(邮件服务器、FTP服务器、Web服务器等),你需要为你的公司先申请一个域名,也就是向管理认证机构注册一个域名。 域名的注册遵循先申请先注册为原则,管理认证机构要确保每一个域名的注册都是独一无二、不可重复的。 # 动态主机配置协议 DHCP 静态地址和动态地址应用场景 DHCP 地址租约 DHCP 租约生成过程 DHCP 地址租约更新 # Telnet 协议 Telnet是一个简单的远程终端协议(非加密、且简单),它也是因特网的正式标准。用户使用telnet客户端就可以连接到远程运行Telnet服务的设备(可以是网络设备例如:路由器、交换机,也可以是操作系统,比如Windows或Linux等),进行远程管理。 Telnet能将用户的键盘指令传到远地主机,同时也能将远地主机的输出通过TCP连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。因此,Telnet又称为终端仿真协议。 Telnet并不复杂,以前应用得很多。现在由于操作系统(Windows和Linux)功能越来越强,用户己较少使用Telnet了。不过配置Linux服务器和网络设备还是需要 Telnet 来实现远程管理和配置 # 远程桌面协议 RDP 现在Windows操作系统很少使用telnet进行远程管理了,更多是使用远程桌面进行远程管理。 Windows系统启用远程桌面,客户端使用远程桌面客户端(mstsc)进行连接。 它们之间使用RDP协议进行通信,RDP协议默认使用TCP的3389端口。 # http 协议、版本和网页 创建网页(准备创建网站、需要设计网页和安装Web服务器) 统一资源定位符URL 绝对路径和相对路径 创建Web站点 HTTP协议版本 HTTP请求报文和响应报文 HTTP响应报文: Cookie 通过代理服务器访问网站 # 文件传输协议 FTP FTP 是File Transfer Protocol(文件传输协议)的英文简称。用于Internet上的控制文件的双向传输。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。 在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和“上传”(Upload)。“下载”文件就是从远程主机拷贝文件至自己的计算机上;“上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。 简单地说,支持FTP协议的服务器就是FTP服务器。 # 安装和配置邮件服务器  模拟整个互联网发送邮件的过程 发送电子邮件的协议 SMTP  接收电子邮件的协议 POP3 和 IMAP--------------------------------------              

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值