首先,WEB编程语言,分为WEB静态语言和WEB动态语言,WEB静态语言就是通常所见到的超文本标记语言 (标准通用标记语言下的一个应用),WEB动态语言主要是ASP,PHP,JAVASCRIPT,JAVA,CGI等计算机脚本语言编写出来的执行灵活的互联网网页程序。
而javaweb编程就是利用java编写的服务器程序。java主要是书写后台服务器程序,然后提供相应的接口供前端也就是浏览器去访问。
1,web编程常用的几大协议:
1.1,HTTP协议,Web编程的核心是HTTP协议,HTTP协议和Java无关。是超文本传输协议,通俗讲就是超越普通文本,可以传输除文字以外的内容如。是客户机和服务器通信的标准,客户端和服务器都遵循HTTP协议,就能从彼此发送的信息中提取自己想要的数据。HTTP协议是应用层的协议,在TCP/IP协议接受到数据后需要通过HTTP协议来解析后才能使用。
1.2,①http协议遵循请求、相应模型。就是说要创建连接–>发请求–>产生响应–>关闭连接,这个过程。
②http协议是一种无状态的协议,由于每次请求、相应后,服务器和客户端的连接会断开,这样,服务器会认为每次请求的用户都是新用户。
③http协议占用80端口。

2、HTTP中报文很重要,报文分请求报文和响应报文两种类型,这两种类型都包括三部分:首行,头部,主体。请求报文的首行是请求行,包括方法(请求类型),URL和HTTP版本三项内容,响应请求的首行是状态行,包括HTTP版本,状态码,剪短原因其中原因可有可无。头部保存一些键值对的属性,用冒号分割。主体保存具体内容,请求报文中主要保存Post类型的参数,响应报文中保存页面要显示的结果。

3、请求报文中的方法有:GET、HEAD、POST、PUT、DELETE等
3.1,get和post的区别:
①格式的区别,get请求的表单数据时附加在URL后面的,所以没有消息体,而post请求有消息体,在消息体中描述表单数据。
②用途的区别 ,GET方式主要用于服务器资源的查找,而post请求在用于数据的传输,也就是如何将客户端本地的数据提交给服务器处理。
③传输性能的区别:get方式只能传输小文本数据,而post方式可以传输大文本数据,而且可以传输二进制数据。如图片、视频等
④安全性:get提交表单时,会在浏览器地址栏中显示表单数据。不安全。而post方式表单数据在消息体中,提交表单时,不会在浏览器中显示表单数据。相对安全。
⑤缓存不同。get方式在浏览器中可以缓存,可以通过后退键回到之间的网页,而post不可以。
4、响应报文常见状态码:
100-199:信息性状态码。
200-299:成功状态码。如:200表示成功。
300-399:重定向状态码。如:301表示发生重定向。
400-499:客户端错误状态码:如:404表示没有找到请求的资源。
500-599:服务端错误状态码:如:500表示系统内部错误。
2,TCP/IP协议,
2.1、TCP和IP协议,通常会把他们放在一起,其实他们是不同的两种协议,作用也不一样。
2.2、IP协议:是用来查找地址,对应网际互联层,TCP协议:是用来规范传输规则的,对应的传输层。IP只负责找到地址,具体怎么传输是由TCP来完成。类似送快递,货单上填写的地址以及怎么根据填写的地址找到客户,这相当于IP协议的功能。而具体怎么将货物送过去,最后让客户签收签字就相当于TCP协议。
2.3、TCP传输前会进行三次沟通,我们称为"三次握手",传完数据断开的时候进行四次沟通,我们称为"四次挥手"。
2.4、TCP重要的概念的:
2.4.1、序号:seq sequence number的缩写,表示所传数据的序号,TCP传输时的每一个字节都有一个序号,发送数据时会将数据的第一个序号发送给对方,接收方会根据序号check是否接收完整,不完整则会重新传送。保证了数据的完整性。
2.4.1、确认号:ack:acknoledgement number缩写,表示确认号。接收方用来给发送方反馈是否成功接收到数据信息,它的值为希望接收的下一个数据包的起始序号,是接收到的seq的值+1;
比如:C端发过来的序号seq = x S端返回的ack = x+1
2.4.1、标志位:SYN 建立连接 FIN 断开连接 ACK确认序号有效 RST重置连接。
2.4.1、ACK:确认位,只有ACK=1的时候ack才起作用,正常通信时ACK=1,第一次发起请求时,因为没有需要确认接收的数据所以ACK为0。
2.4.1、SYN:同步位,用于在建立连接时同步序号,刚开始建立连接时并没有历史接收的数据,所以ack也就没办法设置。SYN的作用就是,当接收端接收到SYN=1的报文时就会将ack设置位接收到的seq+1的值。SYN会在前两次握手时都为1,是因为通信的双方的ack都需要设置一个初始值;
2.4.1、FIN:终止位,用来在数据传输完毕后释放连接。
2.5、三次握手流程:
第一次握手:客户端向服务端发送SYN包,等待服务端响应,并进入SYN-SEND状态
第二次握手:服务端收到SYN包,并确定SYN=ACK+1,然后响应一个SYN包和ACK包。客户端进入SYN-RECV状态。
第三次握手:客户端收到服务端SYN+ACK包。向服务器发送确认包ACK。发送完毕进入ESTABLISHED状态。
2.6、四次挥手:
第一次挥手:主动关闭连接一方,发送FIN包。此时发送FIN包之前发送的数据如果没有发送到。会进行重试发送。
第二次挥手:被动关闭一方收到FIN包。响应一个ACK包。
第三次挥手:被动关闭方发送一个FIN包。告诉被动关闭方。数据发送完毕。
第四次挥手:主动关闭方收到FIN包。发送一个ACK包给被动关闭方,至此四次挥手结束,断开连接。

2.7、为什么要进行第三次握手?两次不就已经建立连接了吗?
为了防止服务器端开启一些无用的连接增加服务器开销以及防止已失效的连接请求报文段由于网络延迟突然又传送到了服务端,因而产生错误。
第一次握手:客户端发起连接请求到服务端。服务端收到请求后响应一个请求给客户端,反馈给客户端已接收到请求。可以连接,正常理解这两次握手就可以了。为什么还要第三次呢?网络具有不稳定性,假如客户端发出去的第一个连接请求由于某些原因在网络节点中滞留了导致延迟,客户端发出第二个请求,然后成功与服务端建立连接,然后数据传输完毕,客户端与服务端断开连接。而这时第一个建立请求才到达服务端,其实这是一个早已失效的报文,但是此时服务端仍然认为这是客户端的建立连接请求第一次握手,于是服务端回应了客户端,第二次握手,如果只有两次握手,那么到这里,连接就建立了,但是其实客户端并没有任何数据要发送,造成很大的资源浪费。所以需要第三次握手,只有客户端再次回应一下,就可以避免这种情况。
2.8、为什么建立连接需要三次握手而断开连接要四次挥手呢?
建立连接的时候:被动方服务器端不需要任何准备,再收到第一次握手客户端的SYNC 后就可以直接第二次握手返回SYN和ACK报文,开始建立连接。
断开连接的时候:被动方服务器端突然收到主动方客户端释放连接的请求时并不能立即释放连接,因为还有必要的数据需要处理,所以服务器先返回ACK确认收到报文,经过CLOSE-WAIT阶段准备好释放连接之后,才能返回FIN释放连接报文。
2.9、为什么客户端在TIME-WAIT阶段要等2MSL?
当客户端发出最后的ACK确认报文时,并不能确定服务器端能够收到该段报文,2MSL是TCP报文在传输过程中最大生命周期。2MSL即是服务器端发出为FIN报文和客户端发出的ACK确认报文所能保持有效的最大时长。服务器端在1MSL内没有收到客户端发出的ACK确认报文,就会再次向客户端发出FIN报文;
3.WEB容器,
随着计算机的发展,传统的web服务器在产生回应时,只能产生静态的HTML数据,极大的影响相应信息的灵活性。为了解决这个问题,人们在web服务器之后,增加辅助应用,辅助应用可以在web服务器接收客户端请求后,进行一系列的业务处理。并以数据库为介质完成信息的保存和提取,从而动态的产生相应信息,说白了就是增加web容器和servlet。
3.1WEB容器的作用:
①通信支持:WEB容器可以将请求、响应信息封装成请求对象响应对象,以便更好的提取客户端的请求数据,以及更好的发送数据到客户端。
②Serlet生命周期管理,Servlet是servlet规范中,预留给开发者书写业务操作的接口,WEB容器负责调用servlet的业务方法,servlet对象的产生、销毁、方法调用都由WEB容器负责。
③多线程的支持,WEB容器负责多线程的产生、销毁、线程同步等。
④jsp支持,WEB容器提供Jsp引擎的支持,将jsp页面翻译成Java文件

对javaWeb理解相关推荐

  1. java 打开jsp文件_jsp文件怎么打开(java-web中jsp的理解)

    jsp文件怎么打开(java-web中jsp的理解)JSP:Java Server Pages.JSP是一种网页的编码格式,不同于HTML的是JSP中是由 HTML中的标签指令 和 Java逻辑代码 ...

  2. 【学习笔记】深入理解及个人感悟JavaWeb

    文章目录 贯穿全文的问题 一.域名解析 二.HTTP 三.Maven 3.1.Maven环境配置 3.2.IDEA中使用Maven 3.2.1.标准目录结构布局(重要) 3.2.2.pom.xml分析 ...

  3. java web项目 相对路径怎么写_理解JavaWeb项目中的路径问题——相对路径与绝对路径...

    背景:html 在刚开始学习javaweb,使用servlet和jsp开发web项目的过程当中,一直有一个问题困扰着我:servlet 和 jsp 之间相互跳转,跳转的路径应该如何书写,才能正确的访问 ...

  4. java面试(二十六)--(1)J2EE中常用名词(2)讲一下redis的主从复制怎么做的?(3)请谈谈你对Javaweb开发中的监听器的理解?(4)按之字形顺序打印二叉树(5)内部类大全

    1.J2EE中常用名词 web容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使 JSP,SERVLET直接跟容器中的环境变量接**互,不必关注其它系统问题.主要有WEB服务器来 ...

  5. JavaWeb的一些理解

    WEB概述 WEB是什么 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上的资源分类 Internet上供外界访问的Web资源分为: 静态 ...

  6. javaweb实训第四天下午——JDBC深入理解

    JDBC深入理解 1.课程介绍 2. PreparedStatement查询 2.1 回顾jdbc 2.2 PreparedStatement的引入 2.2.1 PreparedStatement介绍 ...

  7. JavaWeb中的Dao层Service层Controler层简单理解

    DAO层(mapper层): Dao层叫数据访问层(有的叫持久层),全称data access object,属于一种比较底层,比较基础的操作层,具体到对于某个表的增删改查,也就是说某个Dao层一定适 ...

  8. 一图理解JavaWeb项目

    建议阅读:模拟Servlet 参考:动力节点tomcat

  9. java web-inf_对JavaWeb项目中WEB-INF目录的理解

    1:WEB-INF目录的位置,位于WebRoot或WebContent目录内,WEB-INF里默认有lib目录和web.xml配置文件. 2:WEB-INF下面的内容只能由服务器级别才能访问,客户端并 ...

  10. JavaWeb三层架构的理解/三层架构的优缺点/三层架构与MVC的区别

    1.三层架构 我们的开发架构一般都是基于两种形式,一种是C/S架构,也就是客户端/服务器,另一种是B/S架构,也就是浏览器服务器.在JavaEE开发中,几乎全都是基于B/S架构的开发.那么在B/S架构 ...

最新文章

  1. 基于opencv实现模块化图像处理管道
  2. 小型电商web架构!小而美!
  3. CICC科普栏目丨时间之箭:从熵到大爆炸再到万物理论(一)
  4. 渗透知识-Struts2漏洞
  5. 中国褐煤行业发展趋势前瞻与十四五战略规划分析报告2022-2028年
  6. JSP EL表达式详细介绍
  7. 庭审出示用户观影信息是否违法?律师表示如是举证行为 不涉及侵犯隐私
  8. python echarts接口_Python之图表Pyecharts
  9. centos mysql开发包_CentOS 7 安装 MySQL-阿里云开发者社区
  10. 验证javascript错误使用Google Analytics(分析、统计)
  11. windows7怎么安装python库_windows7 下安装Python的PIL库
  12. 【Linux】复制文件到当前目录 / 复制文件并重命名到当前目录
  13. 会玩shiny的数据产品经理更好,是这样吗?
  14. setTimeout 带参数调用问题
  15. (day 10 - 双指针)剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
  16. -source 1.6 中不支持 lambda 表达式 [ERROR] (请使用 -source 8 或更高版本以启用 lambda 表达式)
  17. 怎样在html中插入ppt,PPT怎么插入网页中的视频
  18. 携程机器学习开发部署一体化平台实践之路
  19. C语言 3习题6 请编程序将China译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。 3习题7 设圆半径r=1.5
  20. 服务器pcie 3.0装固态硬盘,PCIe SSD怎么装系统?实操发现竟然这么简单!

热门文章

  1. 实时网速怎么看快慢_怎么看测出来的网速快慢
  2. 城头土命适合做计算机电脑职业,土命人适合的职业
  3. 网站上线前期应该如何制定关键词优化策略
  4. win7安装.Net Framework 4,出现错误码(1603,0x80070643)
  5. APP支付和H5网页支付有哪些不同?
  6. h5 神策埋点_神策埋点
  7. Direct3D 的进化史
  8. IDEA 插件开发 向主菜单注册菜单项目
  9. excel浏览器直接下载
  10. 虚拟机下ROS调用笔记本摄像头