当前位置: 首页 > news >正文

Web服务器

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

当在浏览器输入URL后,浏览器会先请求DNS服务器,获得请求站点的 IP 地址(即根据URL地址“www.mingrisoft.com”获取其对应的IP地址如101.201.120.85),然后发送一个HTTP Request(请求)给拥有该IP的主机(明日学院的阿里云服务器),接着就会接收到服务器返回的 HTTP Response(响应),浏览器经过渲染后,以一种较好的效果呈现给用户。HTTP基本原理如图1所示。

图1  HTTP基本原理

我们重点来看Web服务器。Web服务器的工作原理可以概括为以下4个步骤:

(1)建立连接:客户端通过TCP/IP协议建立到服务器的TCP连接。

(2)请求过程:客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档。

(3)应答过程:服务器向客户端发送HTTP协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“动态内容”,并将处理后得到的数据返回给客户端。由客户端解释HTML文档,在客户端屏幕上渲染图形结果。

(4)关闭连接:客户端与服务器断开。

步骤2中客户端向服务器端发起请求时,常用的请求方法如表1所示。

表1  HTTP协议的常用请求方法及其描述

方    法

描    述

GET

请求指定的页面信息,并返回实体主体

POST

向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立或已有资源的修改

HEAD

类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头

PUT

从客户端向服务器传送的数据取代指定的文档的内容

DELETE

请求服务器删除指定的页面

OPTIONS

允许客户端查看服务器的性能

步骤3中服务器返回给客户端的状态码,可以分为5种类型,由它们的第一位数字表示,如表2所示。

表2  HTTP状态码及其含义

代    码

含    义

1**

信息,请求收到,继续处理

2**

成功,行为被成功地接受、理解和采纳

3**

重定向,为了完成请求,必须进一步执行的动作

4**

客户端错误,请求包含语法错误或者请求无法实现

5**

服务器错误,服务器不能实现一种明显无效的请求

例如,状态码200,表示请求成功已完成;状态码404,表示服务器找不到给定的资源。

下面,我们用谷歌浏览器访问明日学院官网,查看一下请求和响应的流程。步骤如下:

(1)在谷歌浏览器中输入网址:www.mingrisoft.com,按下<Enter>键,进入明日学院官网。

(2)按下<F12>键(或单击鼠标右键,选择“检查”选项),审查页面元素。运行效果如图2所示。

图2  打开谷歌浏览器调试工具

(3)单击谷歌浏览器调试工具的“Network”选项,按下<F5>键(或手动刷新页面),单击调试工具中“Name”栏目下的“www.mingrisoft.com”,查看请求与响应的信息。如图3所示。

图3  请求和响应信息

图3中的General概述关键信息如下:

l  Request URL:请求的URL地址,也就是服务器的URL地址。

l  Request Method:请求方式是GET。

l  Status Code:状态码是200,即成功返回响应。

l  Remote Address:服务器IP地址是101.201.120.85,端口号是80。

相关文章:

  • PHP中的while循环:用法、技巧与最佳实践
  • Studying-代码随想录训练营day16| 513找到左下角的值、112.路径总和、106从中序与后序遍历序列构造二叉树
  • 适合PbootCMS的阿里云短信发送类
  • 使用Lua脚本保证原子性的Redis分布式锁实现
  • gcn+tcn+transformer入侵检测
  • Java基础 - 练习(五)根据今天日期获取一周内的日期(基姆拉尔森公式)
  • SAP AI Copilot Joule有可能是对SAP顾问的王炸
  • python pyautogui实现图片识别点击失败后重试
  • 【linux】操作系统使用wget下载网络文件,内核tcpv4部分运行日志
  • 【ClickHouse】副本、分片集群 (六)
  • 随机产生一些江河上的坐标数据
  • 秋招突击——6/17——复习{整理昨天的面试资料}——新作{删除链表倒数第n个节点}
  • Jmeter多个请求按照比例并发压测的几种方式
  • POI:接收上传上来的excel,解析并导入到数据库
  • Kafka中的时间轮算法
  • 收藏网友的 源程序下载网
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • CSS 提示工具(Tooltip)
  • CSS实用技巧
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • HTTP请求重发
  • Java基本数据类型之Number
  • nfs客户端进程变D,延伸linux的lock
  • Redis字符串类型内部编码剖析
  • WePY 在小程序性能调优上做出的探究
  • 成为一名优秀的Developer的书单
  • 给Prometheus造假数据的方法
  • 汉诺塔算法
  • 前端攻城师
  • 前嗅ForeSpider采集配置界面介绍
  • 软件开发学习的5大技巧,你知道吗?
  • 携程小程序初体验
  • Java总结 - String - 这篇请使劲喷我
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​520就是要宠粉,你的心头书我买单
  • ​Java基础复习笔记 第16章:网络编程
  • ​批处理文件中的errorlevel用法
  • #QT(QCharts绘制曲线)
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • $(selector).each()和$.each()的区别
  • (Ruby)Ubuntu12.04安装Rails环境
  • (undone) MIT6.824 Lecture1 笔记
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (分类)KNN算法- 参数调优
  • (黑马C++)L06 重载与继承
  • (算法)硬币问题
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • (原创)可支持最大高度的NestedScrollView
  • (转)3D模板阴影原理
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • ./和../以及/和~之间的区别