- 2、Tomcat 详解
- 2.1 安装tomcat
- tomcat启动和配置
- 常见面试题之一:
- 3、HTTP讲解
- 3.1 什么是HTTP
- 3.2 两个时代
- 3.3 http请求
- 1、请求行
- 2、消息头
- 3.4 http响应
- 1、响应体
- 2、响应状态码
- 常见面试题之一:
2、Tomcat 详解 2.1 安装tomcat tomcat启动和配置
可以配置启动的端口号
-
tomcat的默认端口号为:8080
-
mysql默认端口号:3306
-
http:80
-
https:443
可以配置主机的名称
- 默认的主机名为:localhost->127.0.0.1
- 默认网站应用存放的位置为:webapps
常见面试题之一:
- 请你谈谈网站是如何进行访问的!
1.输入一个域名;然后回车
2.检查本机的C:WindowsSystem32driversetchosts配置文件下有没有这个域名映射;
①有:直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问
②没有:去DNS服务器找,找到就返回,找不到就返回找不到
3、HTTP讲解 3.1 什么是HTTP- HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。
- http1.0
- http/1.0:客户端可以与web服务器连接后,只能获得一个web资源,然后短裤连接。
- http2.0
- http/1.1:客户端可以与web服务器连接后,可以获得多个web资源。
- 客户端—发请求—服务器
以百度为例:
Request URL: https://www.baidu.com/ 请求地址 Request Method: GET get方法/post方法 Status Code: 200 OK 状态码:200 Remote Address: 14.215.177.39:443 远程地址 Referrer Policy: strict-origin-when-cross-origin 一个协议
请求头(request header):
Accept: text/html Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 Cache-Control: max-age=0 Connection: keep-alive Host: www.baidu.com1、请求行
- 请求行中的请求方式:GET
- 请求方式有get,post
- get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
- post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效
Accept: 告诉浏览器,它所支持的数据类型 Accept-Encoding: 支持哪种编码格式,有GBK UTF-8 GB2312 ISO8859-1 Accept-Language:告诉浏览器,它的语言环境 Cache-Control: 缓存控制 Connection: 告诉浏览器,请求完成是断开还是保持连接 Host: 请求的主机3.4 http响应
- 服务器—响应—客户端
百度:
Cache-Control: private 缓存控制 Connection: keep-alive 连接 Content-Encoding: gzip 编码 Content-Type: text/html 类型1、响应体
Accept: 告诉浏览器,它所支持的数据类型 Accept-Encoding: 支持哪种编码格式,有GBK UTF-8 GB2312 ISO8859-1 Accept-Language:告诉浏览器,它的语言环境 Cache-Control: 缓存控制 Connection: 告诉浏览器,请求完成是断开还是保持连接 Host: 请求的主机 refresh:告诉客户端,多久刷新一次 location:让网页重新定位2、响应状态码
200:请求响应成功
3xx:请求重定向
- 重定向:你重新到我给你的新位置去
4xx:找不到资源,即资源不存在 ,一般出现404
5xx:服务器代码错误,一般出现 500,出现502:网关错误
常见面试题之一:- 当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示出来,经历了什么?
更多详情内容请参考该博客:https://www.cnblogs.com/wupeixuan/p/8747918.html。
例:当我们在浏览器地址栏输入www.bilibilli.com,然后回车,到看到页面这个过程发生了什么呢?
-
–> 域名解析
首先Chrome浏览器会解析www.bilibilli.com这个域名对应的IP地址。怎么解析到对应的IP地址?
-
Chrome浏览器会首先搜索浏览器的DNS缓存(缓存时间比较短,TTL默认是1000,且只能容纳1000条缓存),看自身的缓存中是否有www.bilibilli.com对应的条目,而且没有过期,如果有且没有过期则解析到此结束。
注:我们怎么查看浏览器的DNS缓存?可以使用 chrome://net-internals/#dns 来进行查看
-
如果浏览器自身的缓存里面没有找到对应的条目,那么Chrome会搜索 *** 作系统的DNS缓存,如果找到且没有过期则停止搜索解析到此结束。
注:怎么查看 *** 作系统的DNS缓存,以Windows系统为例,可以在命令行下使用 ipconfig /displaydns 来进行查看
-
如果在Windows系统的DNS缓存也没有找到,那么尝试读取hosts文件(位于C:WindowsSystem32driversetc),看看这里面有没有该域名对应的IP地址,如果有则解析成功。
-
如果在hosts文件中也没有找到对应的条目,浏览器就会发起一个DNS的系统调用,就会向本地配置的首选DNS服务器(一般是电信运营商提供的,也可以使用像Google提供的DNS服务器)发起域名解析请求(通过的是UDP协议向DNS的53端口发起请求,这个请求是递归的请求,也就是运营商的DNS服务器必须得提供给我们该域名的IP地址),运营商的DNS服务器首先查找自身的缓存,找到对应的条目,且没有过期,则解析成功。如果没有找到对应的条目,则有运营商的DNS代我们的浏览器发起迭代DNS解析请求,它首先是会找根域的DNS的IP地址(这个DNS服务器都内置13台根域的DNS的IP地址),找打根域的DNS地址,就会向其发起请求(请问www.bilibilli.com这个域名的IP地址是多少啊?),根域发现这是一个顶级域com域的一个域名,于是就告诉运营商的DNS我不知道这个域名的IP地址,但是我知道com域的IP地址,你去找它去,于是运营商的DNS就得到了com域的IP地址,又向com域的IP地址发起了请求(请问www.bilibilli.com这个域名的IP地址是多少?),com域这台服务器告诉运营商的DNS我不知道www.bilibilli.com这个域名的IP地址,但是我知道www.bilibilli.com这个域的DNS地址,你去找它去,于是运营商的DNS又向www.bilibilli.com这个域名的DNS地址(这个一般就是由域名注册商提供的,像万网,新网等)发起请求(请问www.bilibilli.com这个域名的IP地址是多少?),这个时候cnblogs.com域的DNS服务器一查,果真在我这里,于是就把找到的结果发送给运营商的DNS服务器,这个时候运营商的DNS服务器就拿到了www.bilibilli.com这个域名对应的IP地址,并返回给Windows系统内核,内核又把结果返回给浏览器,终于浏览器拿到了www.bilibilli.com对应的IP地址,该进行一步的动作了。
-
-
–> 发起TCP的3次握手
-
–> 建立TCP连接后发起http请求
-
–> 服务器响应http请求,浏览器得到html代码
-
–> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)
-
–> 浏览器对页面进行渲染呈现给用户
返回给浏览器,终于浏览器拿到了www.bilibilli.com对应的IP地址,该进行一步的动作了。 -
–> 发起TCP的3次握手
-
–> 建立TCP连接后发起http请求
-
–> 服务器响应http请求,浏览器得到html代码
-
–> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)
-
–> 浏览器对页面进行渲染呈现给用户
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)