2、web服务器
2.1 技术讲解
ASP:
- 微软:国内最早流行
- 在HTML中嵌入了VB的脚本,ASP+COM;
- 在ASP开发中,基本一个页面都有几千行的业务代码,页面及其混乱
- 维护成本高
<html>
<head>
</head>
<body>
<h1>
</h1>
<h1>
<%
System.out.println("hello");
%>
</h1>
</body>
</html>
PHP:
- PHP开发速度很快,功能强大,跨平台,代码简单
- 无法承载大访问量的情况(局限性)
JSP/Servlet:
- B/S:浏览和服务器
- C/S:客户端和服务器
- sun公司主推的B/S架构
- 基于java语言的(所有大公司,或者一些开源的组件,都是java写的)
- 可以承载高并发、高可用、高性能问题带来的影响
- 语法像ASP
2.2 web服务器
服务器是一种被动的操作,用来处理用户的请求和给用户一些响应的信息;
IIS:
微软的;WIndows自带
Tomcat:
omcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
3、Tomcat
- Tomcat的端口号:8888(本机设置后)
- mysql默认端口号:3306
- http:80
- https:443
3.1 配置
更改端口号(D:\apache-tomcat-9.0.31\conf\server.xml\86行):
<Connector port="8888" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
配置主机名称(D:\apache-tomcat-9.0.31\conf\server.xml\152行) (还需修改本地hosts文件)
- 默认的主机名为:localhost-》127.0.0.1
- 默认网站应用存放的位置为:webapps
<Host name="www.test.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
高难度面试题
请你谈谈网站是如何进行访问的?
-
输入一个域名;回车
-
检查本机的C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名的映射
1.有:直接返回对应的IP地址,这个地址中,有我们需要的web程序,可以直接访问
127.0.0.1 www.test.com
2.没有:去DNS服务器找,找到返回,找不到报错
3.2 发布一个web网站
- 将自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了网站应该有的结构
目录:
--webapps : Tomcat服务器的web目录
-ROOT
-kritostudy : 网站的目录名
-WEB-INF
-classes : java程序
-lib : web应用所依赖的jar包
-web.xml : 网站配置文件
-index.html默认的首页
-static
-css
-style.css
-js
-img
4、HTTP
4.1 什么是HTTP
HTTP(超文本传输协议)是一个简单地请求-响应协议,它通常运行在TCP上。
- 文本:html,字符串… …
- 超文本:图片,音乐,视频,定位,地图
- 默认端口号:80
Https:安全的
- 默认端口号:443
4.2 两个时代
- HTTP1.0
- HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接。
- HTTP2.0
- HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源。
4.3 HTTP请求
- 客户端—>发请求(Request)—>服务器
百度:
Request URL:https://www.baidu.com/ 请求地址
Request Method:GET get方法/post方法
Status Code:200 OK 状态码:200
Remote(远程) Address:14.215.199.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
1、请求行
- 请求行中的请求方式:GET
- 请求方式:Get,Post… …
- get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏中显示数据内容,不安全,但高效
- post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏中显示数据内容,安全,但不高效
2 、消息头
Accept 告诉浏览器它所支持的数据类型
Accept-Encoding 支持哪种编码格式 GBK UTF-8 GB2312
Accept-Language 告诉浏览器它的语言环境
Cache-Control 缓存控制
Connection 高速浏览器,请求完是断开还是保持连接
Host 表示主机
4.4 HTTP响应
- 服务器—>响应—>客户端
百度:
Cache-Control:private 缓存控制
Connection:Keep-Alive 连接
Content-Encoding:gzip 编码
Content-Type:text/html 类型
1、响应体
Accept 告诉浏览器它所支持的数据类型
Accept-Encoding 支持哪种编码格式 GBK UTF-8 GB2312
Accept-Language 告诉浏览器它的语言环境
Cache-Control 缓存控制
Connection 高速浏览器,请求完是断开还是保持连接
Host 表示主机
Refresh 告诉客户端多有刷新一次
Location 让网页重新定位
2、 响应状态码(重点)
- 200:请求响应成功
- 3XX:请求重定向
- 重定向:你重新到我给你的新位置
- 4XX:找不到资源 404
- 5XX:服务器代码错误 500
- 502:网关错误
常见面试题:
当你的浏览器中地址栏输入地址并回车的一瞬间到页面能过展示回来,经历了什么?