WEB/HTTP服务器搭建[通俗易懂]

WEB/HTTP服务器搭建[通俗易懂]HTTP对于软件都有服务和客户,有服务端和客户端服务就是在操作系统运行一个或者多个程序,并为客户端提供相应所需的服务协议就是计算机网络中进行数据交换而建立的规则、标准或约定的集合。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。1.WEB服务器web服务器一般指网站服务器,他是一个驻留于Internet的一个计算机程序,用于向浏览器提供文档…

大家好,又见面了,我是你们的朋友全栈君。

HTTP

对于软件都有服务和客户,有服务端和客户端

服务

就是在操作系统运行一个或者多个程序,并为客户端提供相应所需的服务

协议

就是计算机网络中进行数据交换而建立的规则、标准或约定的集合。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。

1.WEB服务器

web服务器一般指网站服务器,他是一个驻留于Internet的一个计算机程序,用于向浏览器提供文档,网站等信息,也可以在其中放置各种文档数据供世界下载,当然也可以放置文档供世界浏览。

1.1 WWW

环球信息网,又名“万维网”,其可分为Web客户端和Web服务器程序。可以让客户端(常用浏览器)访问浏览Web服务器上的页面。由许多互相链接的超文本组成,通过互联网互相访问。

Internet提供的主要服务有万维网WWW)、文件传输FTP)、电子邮件(E-mail)、远程登录Telnet)、手机 (3GHZ) 等。

1.2 Http

(HyperText Transfer Protocal)超文本传输协议,是互联网上最广泛的一种网络协议,所有的www文件都必须遵守这个标准。

它使得浏览器的传输访问更高效,使网络传输减少。

WEB/HTTP服务器搭建[通俗易懂]

1.3 网页、网页文件和网站

网页是网站的基本信息单位,是组成WWW的基本文档。由文字、图片、动画、声音等多种媒体信息以及链接组成,用HTML编写,通过链接实现与其他网页或网站的关联和跳转。

网页文件是用HTML(标准通用标记语言下的一个应用)编写的,在WWW上传输,能被浏览器识别显示的文本文件。其扩展名是.htm.html

网站由众多不同内容的网页构成,网页的内容可体现网站的全部功能。通常把进入网站首先看到的网页称为首页或主页(homepage)

1.4 apache

是一种当今流行的linux Web服务器,起初由Illinois大学Urbana-Champaign的国家高级计算程序中心开发,后来Apache被开放源代码团体的成员不断地发展和加强。

1.5网站架构lamp    

lamp=Linux+apache+mysql+php\python\jsp\perl

静态网页:html

动态网页 : 和后台数据库实现一些交互  php jsp python perl …

本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,该软件开发的项目在软件方面的投资成本较低,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案。

访问标准:通过访问ip地址及端口号访问服务器               

2.HTTP协议运行原理

WEB/HTTP服务器搭建[通俗易懂]WEB/HTTP服务器搭建[通俗易懂]

WEB/HTTP服务器搭建[通俗易懂]

WEB/HTTP服务器搭建[通俗易懂]

WEB/HTTP服务器搭建[通俗易懂]

WEB/HTTP服务器搭建[通俗易懂]

HTTP报文结构

请求报文由请求行,请求头部,空行和请求数据组成

如下图

WEB/HTTP服务器搭建[通俗易懂]

1).请求行

请求行分为三个部分:请求方法、请求地址和协议版本

请求方法

WEB/HTTP服务器搭建[通俗易懂]

WEB/HTTP服务器搭建[通俗易懂]

请求地址

URL:统一资源定位符,是一种自愿位置的抽象唯一识别方法。

端口和路径有时可以省略(HTTP默认端口号是80)

如下例:

WEB/HTTP服务器搭建[通俗易懂]

协议版本

协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1

2).请求头部

请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔。

WEB/HTTP服务器搭建[通俗易懂]

请求头部的最后会有一个空行,表示请求头部结束,接下来为请求数据,这一行非常重要,必不可少。

3).请求数据

可选部分,比如GET请求就没有请求数据。

下面是一个POST方法的请求报文:

POST  /index.php HTTP/1.1    请求行

Host: localhost

User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2  请求头

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8

Accept-Language: zh-cn,zh;q=0.5

Accept-Encoding: gzip, deflate

Connection: keep-alive

Referer: http://localhost/

Content-Length:25

Content-Type:application/x-www-form-urlencoded

  空行

username=aa&password=1234  请求数据

HTTP响应 

WEB/HTTP服务器搭建[通俗易懂]

WEB/HTTP服务器搭建[通俗易懂]

代理服务器: S和C之间的访问实体        

缓存服务器: 特殊的代理服务器

网关服务器: 一个http/FTP网关服务器C—http — 8080 (FTP<–>HTTP )—–S FTP

                       <源ip地址><源端口号> <目标ip地址><端口> 

HTTP关键字段

UA字段

WEB/HTTP服务器搭建[通俗易懂]

SERVER字段

WEB/HTTP服务器搭建[通俗易懂]

Referer字段

WEB/HTTP服务器搭建[通俗易懂]

HTTP重定向

WEB/HTTP服务器搭建[通俗易懂]

Session

Session是可以存储针对于某一个用户的浏览器以及通过其当前窗口打开的任何窗口具有针对性的用户信息存储机制。 通常大家认为,只要关闭浏览器,session就消失,其实这是错误的理解。对session来说也是一样的,除非程序通知服务器删除一个session,否则服务器会一直保留。由于关闭浏览器不会导致session被删除,迫使服务器为seesion设置了一个失效时间,当距离客户端上一次使用session的时间超过这个失效时间时,服务器就可以认为客户端已经停止了活动,才会把session删除以节省存储空间.

(1)第一次访问某个web站点资源时,客户端提交没有带SessionID的请求(请求报文头没有Cookie头域信息)。  而web服务器会检查是否有SessionID过来,没有则创建SessionID,并根据web程序自身定义在请求哪个资源时添加属于当前会话的信息(也可为空),这个信息列表以SessionID作为标识。然后将SessionID返回给客户端(通过响应报文头的Set-Cookie头域)。 (2 )客户端再次访问同个web站点时,提交带有SessionID的请求(通过Cookie头域存储SessionID)。由服务端判断session是否失效,如果未失效,可查询属于当前会话的信息列表。如果失效,则创建新的session(产生新的SessionID),而原先的session(包含session带的信息列表)则丢失,无法访问。

WEB/HTTP服务器搭建[通俗易懂]

Cookie

Cookie 保存SessionID的方式可以采用Cookie,这样在交互过程中浏览器可以自动的按照规则把这个SessionID发回给服务器。Cookie的命名方式类似于SessionID。有时Cookie被人为的禁止,所以出现了其他机制以便在Cookie被禁止时仍然能够把SessionID传递回服务器。这种技术叫做URL重写,就是把SessionID直接附加在URL路径的后面,附加方式也有两种,一种是作为URL路径的附加信息,表现形式为http://www.wantsoft.com/index.asp;jsessionid= ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764 。 另一种是作为查询字符串附加在URL后面,表现形式为http://www.wantsoft.com/index?js … 99zWpBng!-145788764 。

软件安装

[root@imoemoe ~]# yum install httpd                  安装http服务器

[root@imoemoe ~]# systemctl stop firewalld       关闭防火墙

[root@imoemoe ~]# setenforce 0                        关闭selinux防火墙

[root@imoemoe ~]# mkdir /{xixi,haha}                创建文件夹

[root@imoemoe ~]# mkdir /usr/local/hehe          创建虚拟目录文件夹

[root@imoemoe ~]# mkdir /xixi/100                    创建用户名登陆的虚拟目录

[root@imoemoe ~]# echo ‘嘻嘻’ > /xiaopang/100/index.html

[root@imoemoe ~]# echo ‘我是嘻嘻’ > /xiaopang/index.html

[root@imoemoe ~]# echo ‘哈哈’ > /dapang/index.html

[root@imoemoe ~]# echo ‘虚拟目录’ > /usr/local/hehe/index.html

vim /etc/httpd/conf.d/httpd.conf                        ——编写主配置文件

ServerName 0.0.0.0:80 

vim /etc/httpd/conf.d/vhosts.conf                      ——编写辅助配置文件

<Directory /xixi>                                ——设置xixi目录

        AllowOverride none                  ——允许覆盖

        Require all granted                   ——设置访问目录权限

</Directory>

<Directory /haha>                             ——设置haha目录

        AllowOverride none

        Require all granted

</Directory>

<Directory /usr/local/hehe>               ——设置hehe目录

        AllowOverride none

        Require all granted

</Directory>

Listen 10000    ——监听10000端口

<VirtualHost 192.168.10.100:80>   端口号必须写

        DocumentRoot /xixi/100           ——指定当前主机访问网站根目录

        ServerName 192.168.10.100   ——指定访问网站名称

</VirtualHost>

<VirtualHost 192.168.10.100:80>       

        DocumentRoot /xixi

        ServerName www.xixix.com                             ——基于域名寻址

        ErrorLog “/var/log/httpd/dummy-host2.example.com-error_log”                               ——错误日志

        CustomLog “/var/log/httpd/dummy-host2.example.com-access_log” common        ——访问日志

</VirtualHost>

<VirtualHost 192.168.10.100:80>

        DocumentRoot /haha

        ServerName www.haha.com

        Alias /hehe /usr/local/hehe

        ErrorLog “/var/log/httpd/dummy-host2.example.com-error_log”

        CustomLog “/var/log/httpd/dummy-host2.example.com-access_log” common

</VirtualHost>

<VirtualHost *>   ——如想表示所有主机则使用 * 号

[root@imoemoe ~]# systemctl restart httpd

[root@imoemoe ~]# vim /etc/hosts

   192.168.10.100  www.xixi.com

   192.168.10.100 www.haha.com

[root@imoemoe ~]# curl http://192.168.10.100

嘻嘻

[root@imoemoe ~]# curl http://www.haha.com

哈哈

[root@imoemoe ~]# curl http://www.haha.com/hehe/

虚拟目录

[root@imoemoe ~]# curl http://www.xixi.com

我是嘻嘻

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140369.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 服务器性能监视器_性能计数器感叹号

    服务器性能监视器_性能计数器感叹号文章来源:http://blog.csdn.net/lhfzd2004/article/details/1722379上一篇文章《服务器性能监控之WMI》介绍了通过远程com获取服务器性能(当然也可用于本地),那么这篇主要说说windows系统自带的性能监视功能—–>performancecouonter.打开管理工具–>性能,我们可以立即看到服务器的CPU,进程运行时间,磁盘容量

    2022年10月8日
    3
  • 回溯法 0-1背包问题

    回溯法 0-1背包问题一.回溯法回溯法采用的是深度优先策略,回溯法按深度优先策略搜索问题的解空间树。首先从根节点出发搜索解空间树,当算法搜索至解空间树的某一节点时,先利用剪枝函数判断该节点是否可行(即能得到问题的解)。如

    2022年7月2日
    30
  • nginx配置端口_修改redis端口

    nginx配置端口_修改redis端口sudosu#进入nginx自己的配置文件cd/etc/nginx/sites-enabledvimdefault#修改默认监听端口server{ listen80default_server; #这是nginx的端口,可修改 listen[::]:80default_server; #这是ipv6端口…

    2025年10月2日
    6
  • 电容的分类与区别[通俗易懂]

    版权声明:本版面文章皆为原创、或参考其他技术网站、博客后自己动手做实验所得,转载请注明出处——028后勤仓库管理员。作为电子硬件工程师,熟悉各类电容的区别和使用方法是很有必要的。下面来简单介绍下几种常用电容的区别。一、电容的分类与作用       电容是由两个金属极,中间夹有绝缘材料(介质)构成的。由于绝缘材料的不同,所构成的电容器的种类也有所不同

    2022年4月4日
    58
  • apache基于域名虚拟主机配置_php配置虚拟主机

    apache基于域名虚拟主机配置_php配置虚拟主机一、apache虚拟主机的配置1、首先在apache的安装目录下找到conf目录下找到httpd.conf文件然后搜索hosts找到把前面的井号去掉即可启动虚拟主机2、然后在apache的安装目录下找到conf目录下的extra找到httpd-vhosts.conf文件在文件最后添加类似我下面的配置,详细参数见说明我这里以myvirtualho

    2025年12月9日
    8
  • 分析如何用万能表测试MOS管好坏的小窍门

    分析如何用万能表测试MOS管好坏的小窍门   现在家电、照明、汽车电子等领域行业开关管均采用性能优异的MOS管取代过去的大功率晶体三极管,使整体的效率、可靠性、故障率均大幅的下降。       虽说是大幅降低,但也会出现损坏的情况,由于MOS管和大功率晶体三极管在结构、特性有着本质上的区别,在应用上驱动电路也比晶体三极管复杂,致使维修人员对电路、故障的分析倍感困难。怎么对MOS管进行检测呢?一起来了解下  MOS…

    2022年6月17日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号