java-初识WEB:HTTP

基本概念

  • web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。

静态WEB

  • 提供给所有人的视觉数据始终不会发生变化,一般通过html、css等即可实现
    *.html、*htm这些都是网页的后缀,服务器如果一直存储着这些东西,就可以直接读取
    在这里插入图片描述

静态WEB存在缺陷

  • 页面上数据无法动态更新(在不改变原有的静态资源、页面结构情况下)
  • 它无法和数据库交互(数据无法持久化)

动态WEB

  • 提供给每个人的视觉数据时会发生变化,也可能随时间变化,总之,数据是在进行动态更新的,例如Servlet、jsp等
    在这里插入图片描述

动态WEB优缺点

  • 优点:
  1. web页面动态更新
  2. 可以与数据库进行交换
  • 缺点:
  1. 如果动态资源发生错误,后台程序需要重新编写,简称 停机维护

在java中,常把动态资源开发的技术统称为JavaWeb开发;

web应用程序

  • 简而言之,即是提供浏览器 访问的程序
  • web应用程序编写完毕后,外界需要访问,那么就需要给外界提供一个“接口”,目前可以理解这个“接口”就是URL,是唯一能够确定 访问对象的位置,但是不同的 外界 都需要来访问这个 资源,同时还需要对资源进行控制,不能任意 用户任意时间都能够访问,此时就提出来了 服务器 来进行统一管理,当外界需要访问 某一资源时,就会在输入URL 后去服务器上,通过服务器进行 资源查找,如果服务器时处于关闭状态,显然资源会被私有,不会被访问到,所以 服务器 在web 应用过程中尤为重要!

实现 WEB开发的手段

ASP

  • ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。当服务器收到对ASP文件的请求时,它会处理包含在用于构建发送给浏览器的HTML(Hyper Text Markup Language,超文本标记语言)网页文件中的服务器端脚本代码。除服务器端脚本代码外,ASP文件也可以包含文本、HTML(包括相关的客户端脚本)和com组件调用。
    ASP简单、易于维护 , 是小型页面应用程序的选择 ,在使用DCOM (Distributed Component Object Model)和 MTS(Microsoft Transaction Server)的情况下, ASP甚至可以实现中等规模的企业应用程序。

ASP缺点

  • 页面代码量大且混乱
  • 维护成本高

PHP

  • PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如java的面向对象编程,该语言当初创建的主要目标让开发人员快速编写出优质的web网站。 PHP同时支持面向对象和面向过程的开发,使用上非常灵活。

PHP优缺点

  • 优点:
  1. PHP开发速度很快
  2. 功能强大
  3. 跨平台
  4. 代码简单
  • 缺点:
  1. 无法承载 高并发

JSP/Servlet

  • JSP(全称JavaServer Pages)=> java服务器页面 是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
    JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制JSP文件在运行时会被其编译器转换成更原始的Servlet代码JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码
  • Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
    狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

JSP/Servlet优点

  • 可以承载 三高问题(高并发、高可用、高性能)

服务器

  • 服务器:顾名思义,以服务为主,即用来处理用户的一些请求和返回用户需要的信息(响应);

IIS

  • 互联网信息服务(英语:Internet Information Services,简称IIS),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是WindowsNT版本的可选包,随后自带在Windows2000、Windows XP Professional和Windows Server 2003一起发布,但在普遍使用的Windows XP Home版本上并没有IIS。

Tomcat

  • Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。
    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
    Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。Tomcat最新版本为10.0.14。

HTTP

  • 超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。
    TCP/UDP: JAVA-网络编程
    MIME:MIME
    HTTPS:HTTPS是一种安全的协议

HPPT-两个时代

  • http1.0:即HTTP/1.0 客户端与web服务器连接后,只能获得一个web资源
  • http2.0:即HTTP/1.1 客户端与web服务器连接后,可以获得多个web资源

HTTP请求与响应

在这里插入图片描述
输入www.baidu.com
在这里插入图片描述

HTTP请求报文

  • HTTP请求报文:请求行+请求头+请求体
    • 请求行:请求方法+URL地址+协议版本
    • 请求头
    1. Accept:通过这个属性告诉服务端,客户端能接受的响应类型
    2. Referer:表示这个请求是从那个URL请求过来的
    3. Accept-Language:指出浏览器可以接受的语言种类
    4. User-Agent:标识客户端身份的名称,通常页面会根据不同的User-Agent信息自动做出适配,甚至返回不同的响应内容。
    5. Content-Type:指定POST请求中用来表示的内容类型
    6. Host:指定被请求资源的Internet主机和端口号
    7. Content-Length:用来指明发送给接受方的消息主体的大小。Content-Length如果存在并且有效地话,则必须和消息内容的传输长度完全一致。否则就会导致异常 (特别地, HTTP1.0中这个字段可有可无)
    8. Connection:表示客户端与服务器的连接类型
    9. Cache-Control:对缓存进⾏控制,如⼀个请求希望响应返回的内容在客户端要被缓存⼀年,或不希望被缓存就可以通过这个报⽂头达到⽬的
    10. Cookie:浏览器用这个属性向服务器发送Cookie。Cookie 是在浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现模拟登录。
    • 请求体只有POST请求方式,才有请求体,在请求体中封装了POST请求的请求参数;

在这里插入图片描述

请求方式
  • GET:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
  • POST:请求能偶携带的参数没有限制,大小没有限制,不会再浏览器中的URL地址栏显示数据内容安全,安全,但不高效

HTTP响应报⽂

  • HTTP响应报文:响应行+响应头头+响应体
    • 响应行:报文协议及版本+状态码及状态描述
    • 响应头
      在这里插入图片描述
    • 响应体:是服务器返回给客户端的文本信息;
响应状态码
  • 1XX:消息-一般是告诉客户端,求情已经收到了,正在处理中…、
  • 2XX:处理成功-一般是请求收悉、已受理、已处理完成等信息
  • 3XX:重定向到其他地方-它让客户端再发起一个请求以完成整个处理
  • 4XX:处理发生错误-责任在客户端,如客户端的请求一个不存在的资源、客户端未被授权、禁止访问等
  • 5XX: 处理发生错误-责任在服务端,如服务端抛出异常、路由出错、HTTTP版本不支持等等

例如:

  • 200:请求响应成功
  • 300:请求重定向
    • 重定向:地址栏会发生变化
  • 4XX:资源不存在
  • 5XX:服务器代码错误 500,网关错误502

=====================================================================
javaweb 推荐狂神说

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈行恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值