HTTP协议和web工作原理
HTTP协议和web工作原理
http://blog.csdn.net/kjfcpua/archive/2009/12/04/4932597.aspx
本章学完之后能干什么?
要把 知识点学好,那就需要把它相关的周边知识点了解全面
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
发表于 @ 2009年12月03日 14:26:00
HTTP协议和web工作原理相关推荐
- nginx websocket wss 连接失败 failed_浅谈WebSocket协议、WS协议和WSS协议原理及关系
现如今,一些游戏,网站,APP,支付行业的网络经常会收到DDOS和CC,因此这个事情也变得不足为奇了.但在防护方案中有多种不同的方案.如,今天有几个同事在针对高防CDN问题讨论的时,谈到WebSock ...
- php reactphp wss_浅谈WebSocket协议、WS协议和WSS协议原理及关系
websocket在实时通信领域运用的比较多,比如社交聊天.弹幕.多玩家游戏.协同编辑.股票基金实时报价.体育实况更新.视频会议/聊天.基于位置的应用.在线教育.智能家居等需要高实时的场景. 具体到w ...
- 浅谈WebSocket协议、WS协议和WSS协议原理及关系
现如今,一些游戏,网站,APP,支付行业的网络经常会收到DDOS和CC,因此这个事情也变得不足为奇了.但在防护方案中有多种不同的方案.如,今天有几个同事在针对高防CDN问题讨论的时,谈到WebSock ...
- Linux运维系列总结-Linux系统启动过程、WEB工作原理、DHCP工作原理、DNS解析原理、NFS网络文件系统、FTP文件传输协议、PXE+KICKSTART自动安装系统
Linux运维系列总结-Linux系统启动过程.WEB工作原理.DHCP工作原理.DNS解析原理.NFS网络文件系统.FTP文件传输协议.PXE+KICKSTART自动安装系统 1.Linux系统的启 ...
- 深入理解Kotlin协程suspend工作原理(初学者也能看得懂)
1. 概述 挂起函数是Kotlin协程最重要的一个特性,所有其他概念都建立在它的基础上.所以我们需要深入了解它的工作原理. 挂起协程意味着在中间停止它.这类似于玩游戏,当我们想暂停游戏时,可以先存档, ...
- 客户端/服务器程序_了解客户端/服务器协议和Web应用程序
客户端/服务器程序 Introduction 介绍 HyperText Transfer Protocol or "HTTP" is the underpinning of int ...
- 计算机网络——HTTP协议和Web
文章目录 一.基本知识 二.非持续连接与持续链接 1.采用持续连接的HTTP 2.采用非持续连接的HTTP 三.HTTP报文格式 1.请求报文 2.应答报文 五.cookie 六.Web缓存 1.基本 ...
- Go的web工作原理
在Go中使用及其简单的代码即可开启一个web服务.如下: //开启web服务 func test(){http.HandleFunc("/", sayHello)err := ht ...
- http协言和web本质
http协议和web本质 作为一个开发者,尤其是web开发人员,我想你有必要去了解这一系列的处理流程,在这期间,浏览器和服务器到底是如何打交道的?服务器又是如何处理的?浏览器又是如何将网页显示给用户的 ...
最新文章
- 零基础怎么学习web前端开发
- MYSQL数据库性能调优之六:备份
- 每日程序C语言18-求分数序列的前20项和
- C++ class实现邻接表存储的图(完整代码)
- 笔记36 Spring Web Flow——配置
- 王道计算机组成原理 物理层整理 超详细版
- Virtual Treeview 5 0 0的安装以及入门
- 设置searchDisplayController的searchResultsTableView的UITableViewStyle为grouped
- 01.00 简单工厂模式
- Hibernate不能自动建表解决办法【转载】
- 1059 Prime Factors (25 分)质因子 易错题
- 【HDU - 4794】Arnold【斐波那契数列循环节】
- 计算机软件水平考试中级题目,计算机软考中级考试试题及答案
- angular2--使用JsBarcode生成条形码
- 文档数据库(document database)和键值数据库(key-value database)的区别(NoSQL)
- Xcode8写代码闪退
- Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To
- Linux安装RPM、YUM
- iOS各版本发布时间和特点
- NLP(词向量、word2vec和word embedding)
热门文章
- 一天搞定HTML----标签类型与类型转换05
- 【JavaSE_07】Java中类和对象-封装特性
- 这样给面试官解释约瑟夫环问题的几种巧妙解法,面试官满意的笑了
- SSM整合shiro框架相关配置文件
- javascript对象和json字符串之间转换的问题
- eclipse怎么创建web项目html,eclipse入门之创建第一个web程序(jsp测试环境)
- Redis专题-持久化方式
- python telnet 交互_用Python怎么telnet到网络设备
- java的方法什么时候加载,java – JVM什么时候加载类?
- python空格_python 空格