Java基础之Web服务器与Http详解

 更新时间:2021年09月28日 15:13:48   作者:冷丁_  
无论你是前端开发者还是后端开发者,以及测试工程师,这篇文章的知识都是你需要弄懂的。读完这一篇文章,将全面弄懂 HTTP 协议、TCP 协议,面试官再也难不倒你相关知识

Web服务器

技术讲解

  • 微软:国内最早流行的就是ASP
  • 在HTML中嵌入了VB的脚本,ASP+COM
  • 在ASP开放中,基本一个页面都有几千行的业务代码,页面极其混乱
  • 维护成本高

PHP:

  • PHP开发速度很快,功能很强大,跨平台,代码很简单
  • 局限性:无法承载大访问量的情况

JSP/Servlet

B/S:浏览器和服务器

C/S:客户端和服务器

  • sun公司主推的B/S架构
  • 基于java语言的(所有的大公司,或者一些开源的组件,都是用java写的)
  • 可以承载三高问题带来的影响
  • 语法像ASP,ASP–>JSP,加强了市场强度

Web服务器

服务器是一种被动的操作,用来处理用户的一些轻球和用户的一些响应信息。

IIS

微软的;ASP…,Windows中自带的

Tomcat

在这里插入图片描述

Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,最新的Servlet和JSP规范总是能在Tomcat中得到体现,因为Tomcat技术先进、性能稳定,而且免费,因而深受java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个Java出血web的人来说,它是最佳的选择。

Tomcat实际上运行JSP页面和Servlet。Tomcat最新版本为9.0

JAVA jdk中的内容

jdk

bin-执行文件

include-包括了很多c++写的底层

jre

lib里面有很多jar包

java的核心jar包为rt.jar

Tomcat

Tomcat根目录下的内容

bin-启动,关闭的脚本文件

conf-配置文件

lib-依赖的jar包

logs-日志

webapps:发布的网站

Tomcat的配置

在这里插入图片描述

这个核心配置文件可以配置许多参数

配置启动的端口号

  • Tomcat的默认端口号为:8080
  • mysql:3306
  • http:80
  • https:443
  • 修改如下
<Connector port="8081" protocol="HTTP/1.1">
  				 connectionTimeout="20000"
  				 redirectPort="8443"/>
 

可以配置主机的名称

  • 默认的主机名为:localhost->127.0.0.1
  • 默认网站应用存放的位置为:webapps
  • 修改如下
<Host name="www.lengding.com" appBase="webapps"
      unpackWARs="true" autoDeploy="true"></Host>

谈谈网站是如何进行访问的

1.输入一个域名

2.检查本季的C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名的映射

  • 有:直接返回对应的ip地址,这个地址中,有为们需要访问的web程序,可以直接访问
    127.0.0.1 www.lengding.com
    
  • 没有:去DNS服务器找,找到的话就返回,找不到就无法访问

在这里插入图片描述

  • 发布一个网站

将自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了

网站应有的结构

--webapps:Tocat服务器的web目录
	--ROOT
	-lengding:网站的目录名
		-WEB-INF
			-classes:java程序
			-lib:web应用所依赖的jar包
			-web.xml:网站配置文件
		-index.html 默认的首页
		-static
				-css
						-style.css
				-js
				-img

Http

1、什么是Http

Http是一个简单的请求-响应协议,它通常运行在TCP之上。

文本:html,字符串,~…

超文本:图片,音乐,视频,定位,地图…

端口:80

Https:安全的

443

2、两个时代

  • http1.0

HTTP/1.0:客户端可以与web服务器连接,连接后只能获得一个web资源。

  • http2.0

HTTP/1.1:客户端可以与web服务器连接,连接后可以获得多个web资源。

3、Http请求

客户端—发送请求(Request)—服务器

Request URL:https://www.baidu.com/ 请求地址
Request Method:GET get方法/post方法
Status Code:200 OK 状态码:200
Remote(远程) Address:14.215.177.39:443

Accept:text/html
Accept-Encoding:gzip, deflate, br
Accept-Language:zh-CN,zh;q=0.9 语言
Cache-Control:max-age=0
Connection:keep-alive

请求行

请求行中的请求方式:GET

请求方式,Get,Post,HEAD,DELETE,PUT,TRACT…

  • get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
  • post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效(现在可以忽略不计)

消息头

Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.

4、 Http响应

  • 服务器—响应—客户端
Cache-Control:private 缓存控制
Connection:Keep-Alive 连接
Content-Encoding:gzip 编码
Content-Type:text/html 类型
  • 响应体
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.
Refresh:告诉客户端,多久刷新一次;
Location:让网页重新定位;
  • 响应状态码

200:请求响应成功

3xx:请求重定向

  • 重定向:你重新到我给你新的位置去

4xx:找不到资源 404

  • 资源不存在

5xx:服务器代码错误

  • 500
  • 502:网关错误

问题:当你的浏览器中的地址栏输入地址并回车的一瞬间到页面能够展示出来,经历了什么?

到此这篇关于Java基础之Web服务器与Http详解的文章就介绍到这了,更多相关Java Web服务器与http内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java Chaos Game噪声游戏实例代码

    Java Chaos Game噪声游戏实例代码

    这篇文章主要介绍了Java Chaos Game噪声游戏实例代码,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • 关于Http持久连接和HttpClient连接池的深入理解

    关于Http持久连接和HttpClient连接池的深入理解

    众所周知,httpclient是java开发中非常常见的一种访问网络资源的方式了,下面这篇文章主要给大家介绍了关于Http持久连接和HttpClient连接池的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-05-05
  • java开发之内部类的用法

    java开发之内部类的用法

    本篇文章介绍了,java开发之内部类的用法。需要的朋友参考下
    2013-05-05
  • Java中I/O流读取数据不完整的问题解决

    Java中I/O流读取数据不完整的问题解决

    本文主要介绍了ava中I/O流读取数据不完整的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Java ArrayList中存放引用数据类型的方式

    Java ArrayList中存放引用数据类型的方式

    这篇文章主要介绍了Java ArrayList中存放引用数据类型的方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • 解决spring security中遇到的问题

    解决spring security中遇到的问题

    这篇文章主要介绍了解决spring security中遇到的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • JSP 开发之hibernate的hql查询多对多查询

    JSP 开发之hibernate的hql查询多对多查询

    这篇文章主要介绍了JSP 开发之hibernate的hql查询多对多查询的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-09-09
  • maven配置多个仓库的实现

    maven配置多个仓库的实现

    本文主要介绍了maven配置多个仓库的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Spring框架开发IOC两种创建工厂方法详解

    Spring框架开发IOC两种创建工厂方法详解

    这篇文章主要介绍了Spring框架IOC两种创建工厂方法详解,文中附含详细的代码示例分别对静态方法和实例方法创建工厂作了简要的分析
    2021-09-09
  • springboot+dubbo+zookeeper的简单实例详解

    springboot+dubbo+zookeeper的简单实例详解

    本文主要介绍了springboot+dubbo+zookeeper的简单实例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10

最新评论