HTTP协议和web工作原理

2023-10-28

HTTP协议 是web学习的核心!!!
学东东切忌只学配置,不学原理:只学会框架有什么用,要会自己写框架!!
web学习直接关系到J2EE的学习
一、HTTP 超文本传输协议 人类之所发展得如此快,就是因为有自己的语言
       1、所谓超文本:即纯文本语言,不依赖于任何特定语言,任何语言都可以操作它(如java、c++)
       2、传入:HTTP的应用价值在于传输
       3、HTTP是无状态协议
        基于请求/响应模型
        服务器和客户端的交互仅限于请求/响应过程,结束之后便断开,在下一次请求服务器会认为新的客户端
二、要真正理解web工作原理,就必须彻底了解http协议
三、HTTP请求信息(浏览器信息)
       1、请求行:GET/POST(流的组织(请求)方式) URL(地址+目录) 版本号
       2、请求头:Host:客户端IP和端口
         User-Agent:浏览器信息
         Accept:客户端能接收的数据类型
         Accept-encoding:是否支持压缩的流
         Accept-charset:客户端字符编码集
       3、空行:分割请求头和消息体
       4、消息体:请求的参数
四、HTTP响应信息(服务器信息)
       1、状态行:HTTP版本  服务器状态(比如:404找不到...) 描述信息
       2、响应头
        content-text:服务器发送信息的类型
        date:发送时间
        server:服务器类型
       3、消息体:服务器发送给客户端的页面内容
五、模型
       客户端-----通过socket建立连接-----服务器
       客户端-----请求----->服务器
       客户端<-----响应-----服务器
       客户端-----断开-----服务器
       下一次连接.......
六、传统服务器
       缺点:无法生成动态页面
        于是加入一个辅助应用:通过客户端提交的参数来选择服务类型
七、辅助应用
       1、在获取请求之后先执行一段代码,再返回页面
       2、根据客户端请求参数来调用辅助应用
       3、类似word文档,需要注册(注册表)
八、对于服务器的缺点的解决方案
       1、最早的解决方案:CGI通用网关接口(一种与外部程序通讯的标准)
         原理:web服务器调用外部程序,再将返回的结果返回客户端
         CGI的缺点:每次客户端请求都要在服务器上开启一个进程,这样会大大消耗服务器资源
          更好的解决方案是:开启服务器进程一次,就处理所有请求
       2、java的解决方案(解决CGI的缺点:其实CGI是现在web服务器的鼻祖):servlet+web容器
          servlet是一个与平台无关的java接口
          理解servlet,是掌握javaweb编程的核心
          sevlet受控于另一个java应用程序,它就是web容器
          servlet+web容器:为每个请求开启一个线程,线程占用进程的一部分
          sevlet没有main方法,说明它要被别的类web容器调用
          servlet到web容器需要用xml文件注册,而xml的解析由web容器封装
九、web容器对servlet的支持包括:
       1、通讯支持:解析流,封装请求/响应对象
       2、生命周期管理:我们书写的servlet由容器来调用,也就是sevlet的产生和消亡生命周期
       3、多线程支持:解决线程同步,开启关闭等,由容器厂商来做
       4、JSP支持:翻译页面
       5、处理安全性:处理异常等等,比如:servlet抛出异常,由web容器来处理
       总结:web容器主要是用于,给处于容器中的应用程序组件(servlet、jsp)提供一个环境,
       使sevlet和jsp直接和容器中的环境变量交互。
       这样我们就可以把注意力放在,用servlet实现业务逻辑上,不必为
       系统底层服(如线程管理,安全性和网络通信等)务编写代码。
十、web容器的实现
       根据sevlet的规范来实现web容器
       servlet规范之定义了一个容器必须实现的标准功能。那么不同的容器厂商就有了更多的容器实现选择:
       Tomcat
       Jboss
       WebLogic
       WebSphere
       Orecle9i AS


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kjfcpua/archive/2009/12/03/4932597.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTTP协议和web工作原理 的相关文章

  • Vaadin 与 Bootstrap

    我计划制作一个应用程序 该应用程序在客户端具有复杂表单和逻辑验证的视图 我计划使用 AJAX 进行提交并具有一些视觉吸引力 我想要那些具有 Bootstrap 和 或 CoffeeScript 和 Vaadin 开发经验的人的推荐 我有两个
  • 根据 $_POST 值填充字段

    我正在寻求有关我试图填写的表格的帮助 我通常会使用 onChange 函数 但我认为这不是一个选择 基本上我有一个
  • 如何在 Laravel 7.x 中从控制器返回视图时传递 cookie?

    在 laravel 7 x 中 有什么方法可以在返回视图时将 cookie 传递给客户端吗 类似于 return view welcome gt cookie name value min 嗯 我做了一些研究 发现有一些方法 我熟悉的两个是
  • 当url中有空格时htaccess重定向

    我想从仍然出现在谷歌搜索中的旧网址重定向到新网址 旧的网址是这样的 http www marionettecolla org file 20 mostra milano mostra marionette milano htm 我想将其重定
  • 使用 hg 存储库作为网站

    这与我的安全问题有些相关here https stackoverflow com questions 2361626 security deny access to hg via mod rewrite 对实时网站使用 hg Mercuri
  • 使用内容安全策略防止 Internet Explorer 11 上的内联 JavaScript

    是否可以使用 ASP NET WebForm 上的 CSP 来阻止 Internet Explorer 11 上的内联 JavaScript 我知道 IE 11 不支持内容安全策略级别 2 但它支持级别 1 0 我尝试了很多方法 但没有明确
  • 使用节点http代理转发http代理

    我正在使用 node http proxy 库来创建转发代理服务器 我最终计划使用一些中间件来动态修改 html 代码 这就是我的代理服务器代码的样子 var httpProxy require http proxy httpProxy c
  • Jekyll 在子网站上生成静态网站?

    是否可以将 Jekyll 放在 GitHub 上托管的网站的单个部分上 即是否可以让 example github io 成为常规站点 而 example github io blog 由 Jekyll 静态生成 我相信可以通过创建另一个名
  • 如何在odoo中重写js函数

    我想加载 shop checkout url 函数是 odoo define change info order website sale change info order function require use strict oe w
  • 我应该将标签存储在文本字段还是单独的表中?

    我有一个表 其中的行如下所示 id path tags 1 pictures pic1 jpg car bmw 3 pictures pic2 jpg cat animal pussy 4 pictures pic3 png gun 基本上
  • 为什么使用HTTP协议时需要指定端口号?

    即使我们使用HTTP协议 为什么还需要用IP地址指定端口号 例如 http xyz 8080 这到底是什么意思 我们已经知道 在使用 HTTP 时 请求将在端口 80 上提供服务 那么为什么我们要显式指定端口呢 HTTP 的默认端口为 80
  • 在 Tomcat 上部署 Java Web 项目,无需 WAR 或 EAR

    我有一个 Java Web 项目 Struts Spring 在我的本地主机上完美运行 我必须将其部署在我的网站上 但虚拟主机提供的 Tomcat Manager 界面显示 由于安全原因 它无法上传 WAR 文件 当联系技术支持时 我被告知
  • Magento:设置刚刚创建的网站的配置值?

    我正在以编程方式创建网站 用户等 问题是 创建网站时 我无法立即设置配置值 Code
  • 烧瓶 - 404 未找到

    我是烧瓶开发的新手 这是我在烧瓶中的第一个程序 但它向我显示了这个错误 在服务器上找不到请求的 URL 如果您输入了网址 请手动检查拼写并重试 这是我的代码 from flask import Flask app Flask name ap
  • 使用 php ping 网站

    我想创建一个 php 脚本 它将 ping 一个域并列出响应时间以及请求的总大小 这将用于监控网站网络 我尝试过curl 这是我到目前为止的代码 function curlTest2 url clearstatcache return if
  • C# 构建一个 webservice 方法,它接受 POST 方法,如 HttpWebRequest 方法

    我需要一个接受 POST 方法的 Web 服务 访问我的服务器正在使用 POST 方法 它向我发送了一个 xml 我应该用一些 xml 进行响应 另一方面 当我访问他时 我已经使用 HttpWebRequest 类进行了管理 并且工作正常
  • Safari 的“阅读器模式” - 开源解决方案? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Safari 有一个 阅读器模式 可以删除网站上除文本之外的所有内容 有谁知道提供相同功能的开源库 或
  • Web 应用程序使用 API 来完成一切?

    我即将开始为我的公司规划一个内部项目管理工具 API 一直让我疑惑 首先创建 API 并使用这些 API 调用构建实际站点而不是实施两次 是否会被视为不好的做法 效率太低 让我知道你的想法 我完全同意开发 API 将为您提供解耦的架构 并且
  • powershell Invoke-WebRequest WebSession 不起作用

    我无法让以下代码工作 它似乎已登录 但随后返回带有 response 的登录页面 我猜这与回发有关 有办法解决这个问题吗 谢谢 login Invoke WebRequest Uri http www sqlpass org UserLog
  • 您可以在不是在 Google 协作平台下创建的网站上使用 Google 脚本吗? [复制]

    这个问题在这里已经有答案了 Google 脚本有一种方法可以嵌入到 Google 网站中 但我想知道是否可以在非 Google 托管的网站上使用 Google 脚本 此 google 脚本的目的是作为 Javascript 的简单替代方案

随机推荐

  • STM32 基础系列教程 18 – IWDG

    前言 学习stm32 独立看门狗 IWDG 接口使用 学会用STM32内部独立看门狗 IWDG 实现程序异常时自复位功能 STM32F10xxx内置两个看门狗 提供了更高的安全性 时间的精确性和使用的灵活性 两个看门狗设备 独立看门狗和窗口
  • 计算机网络——SOCKET、TCP、HTTP之间的区别与联系

    文章目录 一 Socket 1 什么是socket 2 为什么需要socket 3 建立socket连接 4 socket分类 二 HTTP 基于TCP 1 HTTP的概念 2 HTTP连接的特点 2 1 连接请求 一次连接 2 2 连接请
  • 专栏《乔新亮的CTO成长复盘》读书笔记(技术架构篇)

    架构决策能力不但非常关键 而且是技术管理者最重要的能力和职责之一 而且职级越高就越重要 很多所谓的 技术债 也就是由一次次的决策失误不断累加而成的 管理者要能充分利用自己的技术视野和业务认知提前做好预判和布局 也就是上医治未病 做 T 型人
  • 滑动谜题 -- BFS

    滑动谜题 输入 board 4 1 2 5 0 3 输出 5 解释 最少完成谜板的最少移动次数是 5 一种移动路径 尚未移动 4 1 2 5 0 3 移动 1 次 4 1 2 0 5 3 移动 2 次 0 1 2 4 5 3 移动 3 次
  • Python Selenium 基本使用(详细步骤)

    一 简介 Selenium 是一个 web 应用程序自动化测试工具 对各种浏览器都能很好地支持 包括 Chrome Firefox 这些主流浏览器 使用它可以模拟浏览器进行各种各样的操作 包括爬取一些网页内容 当看到浏览器自己运行并且在网页
  • QtConcurrent 线程使用说明

    关于Qt Concurrent 我们首先来看看Qt Assitant是怎么描述的 The QtConcurrent namespace provides high level APIs that make it possible to wr
  • 关于UE4 vs2017 SpawnActor编译通过,调试运行崩溃的问题

    在制作VR模式代码编写的时候 使用一些API采用UWorld SpawnActor的时候出现代码编译编译通过无报错 但是调试运行失败的原因 找了很久才找到原因 原来是构造器的问题 就是把SpawnActor放到到BeginPlay 中 不能
  • oracle全文索引之commit与DML操作

    我们知道 无论对多大的数据做DML操作 执行commit都可以很快完成 但如何删除建有全文索引的记录 在commit时可能会很慢 根据推断可以知道是由于域索引造成的 那么在有域索引的情况下 commit时 oracle还做了那些额外工作呢
  • chatgpt赋能python:Python求全排列的介绍

    Python求全排列的介绍 在计算机科学中 全排列是一种排列的形式 将一组元素按照固定的顺序安排 在Python中 可以使用递归和迭代来求解全排列问题 本文将介绍如何用Python求全排列以及如何在SEO方面优化文章 递归方法 递归方法是通
  • 新形势下,企业如何进行数字化转型 附下载地址

    2020年谈企业数字化转型 有一个不变和四个变 不变的是企业面临的整体宏观环境和企业 多年发展积累的运营模式和管理能力 因此企业数字化转型面临的固有难点依然存在 四个 变化因素是疫情影响 5G部署 人工智能 AI 加快应用 以及中美技术加速
  • springboot中 拦截器无法访问数据库解决方法

    在springboot中使用拦截器时 拦截器中还需要访问数据库 会出现实例化数据库访问对象失败的现象 不管是添加 Componse还是添加 Servie 或者 Configuration 均不可以 需要做如下处理 方法如下 1 在集成Web
  • yolov5环境搭建与pytorch中torch、torchvision、torchaudio安装

    python软件安装 可以不单独安装 2条消息 Python安装教程 2022最新 学Python的阿杜的博客 CSDN博客 安装anaconda3 2020 2对应的python版本为3 7 不推荐 2020 11对应的python版本为
  • 数据库MySql python读取插入数据,insert对那些类型加单引号,表单自己参考自己(外键),空值和NULL

    今天做了下数据库作业 好多出错 记录下 查漏补缺 本次只是实现一个employee表单 特殊在有一个外键参考自身主键 并且老师给的数据该外键可为null 表结构直接用workbench 里面构造的 Navicat还没解决不修改密码策略的条件
  • Python中常用的运算符

    1 算数运算符 最常见的 标准算数运算符 加减乘除 取余运算符 幂运算符 2 赋值运算符 3 比较运算符 4 布尔运算符 5 位运算符 1 算数运算符 2 赋值运算符 3 比较运算符 对变量或表达式的结果进行大小 真假等比较 一个 称为赋值
  • python怎么用print打出赋值_python print 输出赋值到变量

    In 52 import io In 53 row ACME 50 91 5 In 54 join row TypeError Traceback most recent call last in gt 1 join row TypeErr
  • 在 SQL 里描述数据分布情况的时候,有 Cardinality 和 Selectivity 两个概念,有什么区别?

    What is the difference between cardinality and selectivity In SQL cardinality refers to the number of unique values in p
  • 分享一波粉丝面试真题-主要是偏管理方面的

    怎么改善团队低迷现状 改善团队低迷的现状是一个重要的管理挑战 以下是一些可能有助于改善团队状态的方法 深入了解问题 首先 需要了解低迷的原因 这可能涉及与团队成员的个人会谈 收集反馈 观察工作流程等 明确问题的性质对于采取适当的措施至关重要
  • 使用python批量将svg转换成PNG

    CairoSVG介绍 CairoSVG是一个将SVG转为PNG PDF PS格式的库 当前版本的CairoSVG至少需要Python 3 5以上版本 CairoSVG安装和使用 pip install cairosvg 通过命令行你就可以使
  • 数据结构课设:学生信息管理系统(完整版)

    系统介绍 学生信息管理系统是针对学校人事处的大量业务处理工作而开发的管理软件 主要用于学校学生信息管理 总体任务是实现学生信息关系的系统化 科学化 规范化和自动化 其主要任务是用计算机对学生各种信息进行日常管理 如查询 修改 增加 删除 另
  • HTTP协议和web工作原理

    HTTP协议 是web学习的核心 学东东切忌只学配置 不学原理 只学会框架有什么用 要会自己写框架 web学习直接关系到J2EE的学习一 HTTP 超文本传输协议 人类之所发展得如此快 就是因为有自己的语言 1 所谓超文本 即纯文本语言 不