温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
  • 忘记密码?
登录注册×
获取短信验证码
其他方式登录
点击 登录注册 即表示同意 《亿速云用户服务条款》
  • 服务器
  • 数据库
  • 开发技术
  • 网络安全
  • 互联网科技
登 录 注册有礼
最新更新 网站标签 地图导航
产品
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • 怎么搭建Web服务器

怎么搭建Web服务器

发布时间:2021-10-26 17:26:28 来源:亿速云 阅读:201 作者:小新 栏目: 开发技术

这篇文章主要为大家展示了“怎么搭建Web 服务器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么搭建Web服务器”这篇文章吧。

先说首要问题:Web 服务器是什么?

怎么搭建Web服务器

简而言之,它是一个运行在一个物理服务器上的网络服务器(啊呀,服务器套服务器),等待客户端向其发送请求。当它接收请求后,会生成一个响应,并回送至客户端。客户端和服务端之间通过  HTTP 协议来实现相互交流。客户端可以是你的浏览器,也可以是使用 HTTP 协议的其它任何软件。

最简单的 Web 服务器实现应该是什么样的呢?这里我给出我的实现。这个例子由 Python 写成,即使你没听说过  Python(它是一门超级容易上手的语言,快去试试看!),你也应该能够从代码及注释中理解其中的理念:

import socket HOST, PORT = '', 8888 listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) listen_socket.bind((HOST, PORT)) listen_socket.listen(1) print 'Serving HTTP on port %s ...' % PORT while True:     client_connection, client_address = listen_socket.accept()     request = client_connection.recv(1024)     print request     http_response = """\ HTTP/1.1 200 OK Hello, World! """     client_connection.sendall(http_response)     client_connection.close()

将以上代码保存为 webserver1.py,或者直接从 GitHub 上下载这个文件。然后,在命令行中运行这个程序。像这样:

$ python webserver1.py Serving HTTP on port 8888 …

现在,在你的网页浏览器的地址栏中输入 URL:http://localhost:8888/hello  ,敲一下回车,然后来见证奇迹。你应该看到“Hello, World!”显示在你的浏览器中,就像下图那样:

怎么搭建Web服务器

说真的,快去试一试。你做实验的时候,我会等着你的。

完成了?不错!现在我们来讨论一下它实际上是怎么工作的。

首先我们从你刚刚输入的 Web 地址开始。它叫 URL,这是它的基本结构:

怎么搭建Web服务器

URL 是一个 Web 服务器的地址,浏览器用这个地址来寻找并连接 Web 服务器,并将上面的内容返回给你。在你的浏览器能够发送 HTTP  请求之前,它需要与 Web 服务器建立一个 TCP 连接。然后会在 TCP 连接中发送 HTTP 请求,并等待服务器返回 HTTP  响应。当你的浏览器收到响应后,就会显示其内容,在上面的例子中,它显示了“Hello, World!”。

我们来进一步探索在发送 HTTP 请求之前,客户端与服务器建立 TCP  连接的过程。为了建立链接,它们使用了所谓“套接字socket”。我们现在不直接使用浏览器发送请求,而在命令行中使用 telnet 来人工模拟这个过程。

在你运行 Web 服务器的电脑上,在命令行中建立一个 telnet 会话,指定一个本地域名,使用端口 8888,然后按下回车:

$ telnet localhost 8888 Trying 127.0.0.1 … Connected to localhost.

这个时候,你已经与运行在你本地主机的服务器建立了一个 TCP 连接。在下图中,你可以看到一个服务器从头开始,到能够建立 TCP 连接的基本过程。

怎么搭建Web服务器

在同一个 telnet 会话中,输入 GET /hello HTTP/1.1,然后输入回车:

$ telnet localhost 8888 Trying 127.0.0.1 … Connected to localhost. GET /hello HTTP/1.1 HTTP/1.1 200 OK Hello, World!

你刚刚手动模拟了你的浏览器(的工作)!你发送了 HTTP 请求,并且收到了一个 HTTP 应答。下面是一个 HTTP 请求的基本结构:

怎么搭建Web服务器

HTTP 请求的***行由三部分组成:HTTP  方法(GET,因为我们想让我们的服务器返回一些内容),以及标明所需页面的路径/hello,还有协议版本。

为了简单一些,我们刚刚构建的 Web 服务器完全忽略了上面的请求内容。你也可以试着输入一些无用内容而不是“GET /hello  HTTP/1.1”,但你仍然会收到一个“Hello, World!”响应。

一旦你输入了请求行并敲了回车,客户端就会将请求发送至服务器;服务器读取请求行,就会返回相应的 HTTP 响应。

下面是服务器返回客户端(在上面的例子里是 telnet)的响应内容:

怎么搭建Web服务器

我们来解析它。这个响应由三部分组成:一个状态行 HTTP/1.1 200 OK,后面跟着一个空行,再下面是响应正文。

HTTP 响应的状态行 HTTP/1.1 200 OK 包含了 HTTP 版本号,HTTP 状态码以及 HTTP  状态短语“OK”。当浏览器收到响应后,它会将响应正文显示出来,这也就是为什么你会在浏览器中看到“Hello, World!”。

以上是“怎么搭建Web服务器”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节
推荐阅读:
  1. Centos8搭建本地Web服务器
  2. 使用Nodejs搭建Web服务器

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

web 服务器
  • 上一篇新闻:
    Vue.js 3.0的新特性有哪些
  • 下一篇新闻:
    怎么在FreeBSD 10.2上安装Nginx作为Apache的反向代理

猜你喜欢

  • 云主机的iis如何配置
  • 如何选择国外的云主机
  • 弹性公网ip怎么绑定云服务器
  • 一个主机可以绑定多少弹性ip
  • 弹性ip是固定ip吗
  • 用户可以拥有多少个弹性ip
  • 弹性ip如何连接ftp
  • 为什么路由器不用弹性ip分配
  • 私有ip和弹性ip的区别在哪里
  • 弹性公网ip怎么绑定实例
最新资讯
  • Clojure在物联网领域的应用有哪些
  • 如何在Clojure中使用GraphQL
  • Clojure中有哪些加解密和安全相关的库
  • 如何在Clojure中实现国际化和本地化
  • 介绍Clojure的testing frameworks和库
  • Clojure在大数据处理领域的应用情况如何
  • 如何使用Clojure进行分布式计算
  • 解释Clojure中向量、列表、集合和映射的区别和用途
  • Clojure中的逻辑编程和规则引擎用法是什么
  • 如何在Clojure中处理XML和HTML数据
相关推荐
  • Spring怎么搭建web服务器
  • nodejs如何搭建web服务器
  • Node.js怎么搭建WEB服务器
  • node如何搭建web服务器
  • 如何搭建JavaWeb服务器
  • Node.js如何搭建Web服务器
  • openSUSE 12.1下如何搭建Web服务器
  • Centos怎么搭建高性能WEB服务器
  • 如何搭建高性能WEB服务器
  • win11如何搭建web服务器

相关标签

websphere web安全 webrtc web.xml html-webpack-plugi webkit webpack4.0 web认证 webmagic webdav haproxy高可用web群集 asp.net web android webservice javaweb项目 web集群 互联网 运维 web开发 webbench web云服务器 webmvcconfigurer webassembly
AI

PHP网站源码威海百度网站优化排名报价潮州百姓网标王哪家好兴安盟营销型网站建设多少钱亳州网站定制大浪百度标王多少钱铁岭百姓网标王多少钱惠州高端网站设计推荐丽江SEO按天扣费哪家好光明网站搭建价格衡阳网站建设衡水seo价格石岩百度竞价包年推广公司茂名建站哪家好北京百度关键词包年推广伊春百度竞价哪家好娄底网站优化推广多少钱福州网站推广工具报价张家界推广网站公司郴州百度爱采购公司南平网页制作价格孝感企业网站设计辽阳网站优化按天收费价格桂林seo排名哪家好南充网络广告推广价格永新模板网站建设公司宜春网站推广系统报价梅州关键词按天收费报价铁岭网站推广系统推荐横岗如何制作网站雅安网站开发公司歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化