HTTP协议的介绍,Web服务器配置,虚拟主机的配置,如何用SSL实现HTTPS。

简介:

 Web服务通常可以分为静态Web服务和动态Web服务两种,在静态Web服务中,服务器只是负责把存储的文档发送给客户端浏览器,在此过程中传输的网页 只有在专业的编辑人员对它们修改之后,页面才会发生变化。而动态Web服务能够实现浏览器和服务器之间的数据交互,Web服务通过CGI、ASP、PHP 等动态网站技术,客户端可以向服务器请求可执行的程序,服务器会执行该程序,或者把请求传送给应用程序服务器执行,之后返回结果给客户端。

    HTTP超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。

wKioL1OMoDbxzwQZAAD1UEbQoCw815.jpg

    

HTTP 请求方法:

    GET:请求一个资源。

    PUT:向指定资源位置上传内容。

    HEAD:仅请求响应首部。

    DELETE:请求***资源。

    POST: 向指定资源提交数据进行处理请求(提交表单)。

    OPTIONS:返回请求的资源所支持的方法的方法。

HTTP响应码:

    1xx:信息状态码。

    2xx:成功状态码。

    3xx:重定向状态码:

    301:永久重定向,请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。

    302:临时重定向,资源只是临时被移动。客户端应继续使用原有URI。

    304:Not Modified,所请求的资源未修改。

    4xx:客户端错误:

    404:Not Found

    5xx:服务器端错误

    500:Internal Server Error 服务器内部错误,无法完成请求

    502:Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。

HTTP报文请求的首部:

    request:

        <method> <request-URL> <version>

        <headers>


        <entity-body>

    response:

        <version> <status> <reason-phrase>

        <headers>


        <entity-body>

    我们用Telnet对纯文本的HTTP发出一个请求:

wKiom1OMq9WAZF3aAAMkHKTvLBo493.jpg

Apache 工作模型:

    MPM(Multi -Processing Modules,多道处理模块。

        prefork:一个进程响应一个请求。

        worker:一个进程生成多个线程,一个线程响应一个请求。

        event:事件驱动模式

下面来看看如何用Apache程序配置一个Web服务器:

    httpd 命令的基本使用: 

        -t 测试语法错误

        -l 列出已编译的模块

        -t -D DUMP_MODULES 显示全部已装载的模块

    配置所选用的MPM的属性
        编辑/etc/sysconfig/httpd配置文件,定义如下行:
            HTTPD=/usr/sbin/httpd.worker

    配置服务器支持KeepAlive:

wKiom1OMtxziufnRAAIJzVdWWRw619.jpg

    配置加载模块:

wKiom1OMt82iGdPPAAHinyMAMrw796.jpg

实例1、创建虚拟主机192.168.1.200:80为tuchaohost1,192.168.1.210:8866为tuchaohost2,定义日志文件,允许执行CGI脚本。

    虚拟主机和主服务器不能同时使用:关闭主服务器,注释主服务器的DocumentRoot。

wKiom1OMvcXz5-GEAAGolYSYejY580.jpg

添加监听的端口

wKiom1OMweXTjwyvAABHOtO0guk601.jpg

配置虚拟主机

wKiom1OMyRiDEVcrAAE7PFEgIL8416.jpg

访问下192.168.1.200

wKioL1OMyabx5bBnAAC81Jn77A8455.jpg

访问下192.168.1.210:8866

wKiom1OMyfXxHpBUAADEErnWl3s423.jpg

好,这两个都配置成功了,接下来我们配置一个基于主机名的虚拟主机,并且设置权限访问

使用htpasswd命令创建用户文件。

# htpasswd -c -s  /etc/httpd/conf/.htpass tuchao

wKiom1ONc9XBh744AACYod_jm7U179.jpg

然后配置httpd.conf主配置文件:

wKiom1ONeUKha_2TAAE2MMR9eEM642.jpg

重启服务

# /etc/init.d/httpd restart

用另一台主机访问试试:

我们配置了身份验证的,要输入用户名密码。

wKiom1ONegiC9umsAAIBSVgiGHc085.jpg

输入好后,点确定。 就能看到网页了,这就是基于主机名的虚拟主机。

wKioL1ONehPxgNyMAAD-UColiV0011.jpg

下面来看看如何使用SSL来实现HTTPS:

先安装mod_ssl

# yum install mod_ssl -y

自建CA:

    # cd /etc/pki/CA/

    # openssl genrsa -out private/cakey.pem 2048

    # openssl req -new -x509 -key private/cakey.pem  -out cacert.pem -days 365

为httpd生成私钥,创建证书签署请求,然后由CA签署。

    # cd /etc/httpd/conf/ssl

    # openssl genrsa -out ./http.key 1024

    # openssl req -new -key http.key  -out httpd.csr

    # openssl ca -in httpd.csr -out httpd.crt -days 365

配置/etc/httpd/conf.d/ssl.conf

wKioL1ONhz-Cc8f7AAJPPRBJZ7E340.jpg

配置证书的文件和私钥路径:

wKiom1ONh5jCn0yEAAGep7ZO3R4920.jpg配置完成后重启服务,来用openssl测试下。

# openssl s_client -connect www.study.com:443 -CAfile /etc/pki/CA/cacert.pem

wKioL1ONh_zilPk0AAL9h2qHqMA682.jpg

GET / HTTP/1.1

Host:www.study.com

wKioL1ONjt6x4Y0DAAFAyldqRxw754.jpg

我们可以把CA的证书复制到windows客户端,把尾椎改为.crt双击安装,实现访问加密。wKiom1ONj1vRbpRJAACtAgyvlag476.jpg


好,基本配置就到这里,休息会。

有问题欢迎与我交流:1183710107



本文转自qw87112 51CTO博客,原文链接:http://blog.51cto.com/tchuairen/1421292

相关文章
|
6天前
|
缓存 网络协议 前端开发
Web 性能优化|了解 HTTP 协议后才能理解的预加载
本文旨在探讨和分享多种预加载技术及其在提升网站性能、优化用户体验方面的应用。
Web 性能优化|了解 HTTP 协议后才能理解的预加载
|
12天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验
63 28
|
10天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验。
129 25
|
13天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验。
153 18
|
1月前
|
域名解析 缓存 网络协议
Web基础与HTTP协议
通过掌握这些基础知识和技术,开发者可以更加高效地构建和优化Web应用,提供更好的用户体验和系统性能。
77 15
|
28天前
|
前端开发 网络协议 安全
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
|
1月前
|
缓存 网络协议 算法
从零开始掌握HTTP协议
本文介绍HTTP协议的演变,从HTTP1.0到HTTP2.0。HTTP1.0为无状态连接,每次请求独立;HTTP1.1引入持久连接、管道化请求和更多状态码;HTTP2.0采用二进制分帧、多路复用、头部压缩及服务器主动推送,大幅提升性能与用户体验。了解这些区别有助于开发者优化应用和服务。
|
3月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
217 3
|
2月前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
138 62
|
1月前
|
前端开发 安全 JavaScript
2025年,Web3开发学习路线全指南
本文提供了一条针对Dapp应用开发的学习路线,涵盖了Web3领域的重要技术栈,如区块链基础、以太坊技术、Solidity编程、智能合约开发及安全、web3.js和ethers.js库的使用、Truffle框架等。文章首先分析了国内区块链企业的技术需求,随后详细介绍了每个技术点的学习资源和方法,旨在帮助初学者系统地掌握Dapp开发所需的知识和技能。
2025年,Web3开发学习路线全指南