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

[项目][WebServer][项目介绍及知识铺垫][上]详细讲解

目录

  • 1.何为WWW?
  • 2.HTTP分层
    • 1.整体
    • 2.细节
    • 3.DNS?
    • 4.协议之间是如何协同运作的?
  • 3.Http相关概念
    • 1.特点
    • 2.URI && URL && URN
    • 3.HTTP URL格式


1.何为WWW?

  • WWW是环球信息网的缩写,常简称为Web
  • 分为Web客户端和Web服务器程序,WWW可以让Web客户端(常用浏览器)访问浏览Web服务器上的页面,是一个由许多互相链接的超文本组成的系统,通过互联网访问
  • 在这个系统中,每个有用的事物,称为一样“资源”
    • 并且由一个全局“统一资源标识符”(URI)标识
    • 这些资源通过超文本传输协议(Hypertext Transfer Protocol)传送给用户,而后者通过点击链接来获得资源
  • HTTP(超文本传输协议)是基于TCP的连接方式进行网络连接
  • HTTP/1.1版本中给出一种持续连接的机制(长链接)
  • 绝大多数的Web开发,都是构建在HTTP协议之上的Web应用

2.HTTP分层

1.整体

请添加图片描述

2.细节

请添加图片描述

3.DNS?

请添加图片描述

4.协议之间是如何协同运作的?

请添加图片描述


3.Http相关概念

  • 目前主流服务器使用的是http/1.1版本,但是本项目为了简化代码,按照http/1.0来完成项目

1.特点

  • 客户/服务器模式(B/S/C/S)
    请添加图片描述

  • 简单快速,HTTP服务器的规模小,因而通信速度很快

  • 灵活,HTTP允许传输任意类型的数据对象,正在传输的类型由Content-Type加以标记

  • 无连接,每次连接只处理一个请求

    • 服务器处理完客户的请求,并收到客户的应答后,即断开连接
    • 采用这种方式可以节省传输时间 (http/1.0具有的功能,http/1.1兼容)
  • 无状态

    • http协议每当有新的请求产生,就会有对应的新响应产生,协议本身并不会保留你之前的一切的请求或者响应
    • 这是为了要更快的处理大量的事物,保证协议的可伸缩性
  • 可是,随着web的发展,因为无状态而导致业务处理变得棘手起来,比如保持用户的登录状态

    • http/1.1虽然也是无状态协议,但是为了保持状态的功能,引入了Cookie和Session技术

2.URI && URL && URN

  • URI是Uniform Resource Identifier,统一资源标识符,用来唯一的标识一个资源
  • URL是Uniform Resource Locator,统一资源定位符,他是一种具体的URI
    • 即:URL可以用来标识一个资源,而且还指明了如何locate这个资源
  • URN,Uniform Resource Name,统一资源命名,是通过名字来标识资源,比如MAILTO:java-net@java.sun.com
  • URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式,URL和URN都是一 种UR
  • URL是URI的子集,可以理解成URL是一种特殊类型的URI,包含了如何获取指定资源
    • 任何东西,只要能够唯一地标识出来,都可以说这个标识是URI
    • 如果这个标识是一个可获取到上述对象的路径,那么同时它也可以是一个URL
    • 但如果这个标识不提供获取到对象的路径,那么它就必然不是URL
  • 示例:
    • URI: /home/index.html
    • URL: www.xxx.com:/home/index.html

3.HTTP URL格式

  • 格式:http://host[":"port][abs_path]
    • http表示要通过HTTP协议来定位网络资源
    • host表示合法的Internet主机域名或者IP地址,本主机IP:127.0.0.1
    • port指定一个端口号,为空则使用缺省端口80
    • abs_path指定请求资源的URI
    • 如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成
      • 虽然浏览器默认会添加/,但是依旧没有告知服务器,要访问什么资源
      • 此时,默认返回对应服务的首页
  • 例子:
    • 输入: www.baidu.com,浏览器自动转换成:http(s)://www.baidu.com/
    • 一个较为完整的http请求:https://github.com/DieSnowK/Study


http://www.kler.cn/a/297942.html

相关文章:

  • JVM 参数(OpenJDK 11.0.12)
  • [Linux入门]---进程创建和进程等待
  • 双指针(7)_单调性_三数之和
  • 如何看待IBM中国研发部裁员?三个方向快速解析
  • 基于IP子网的VLAN典型配置举例(H3C,其他厂商同理)
  • linux 操作系统下command 命令介绍和使用案例
  • MATLAB与C++参数传递(最完整)
  • 【人工智能学习笔记】4_2 深度学习基础之多层感知机
  • ansible入门
  • modsecurity
  • java 防重复提交
  • 每日一题——第八十五题
  • 基于单片机的室内装修环境检测系统设计
  • [解决] npm i:【idealTree:vue.web: sill idealTree buildDeps vue3拉取jQuery卡慢失败】
  • 在Ubuntu 18.04上安装Node.js的方法
  • 打开VSCod安装“PHP Intelephense”或“PHP Server”PHP扩展
  • 【C++二分查找】1482. 制作 m 束花所需的最少天数
  • RAG与LLM原理及实践(16)---RAG 前端技术Flask-socketIO
  • PySpark
  • 数据结构(7.1)——查找的基本概念