IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Java Web跟着狂神学习总结(二) -> 正文阅读

[网络协议]Java Web跟着狂神学习总结(二)


2、Tomcat 详解

2.1 安装tomcat

tomcat启动和配置

在这里插入图片描述

在这里插入图片描述

可以配置启动的端口号

  • tomcat的默认端口号为:8080

  • mysql默认端口号:3306

  • http:80

  • https:443

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

可以配置主机的名称

  • 默认的主机名为:localhost->127.0.0.1
  • 默认网站应用存放的位置为:webapps
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

常见面试题之一:

  • 请你谈谈网站是如何进行访问的!

1.输入一个域名;然后回车

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

? ①有:直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问

? ②没有:去DNS服务器找,找到就返回,找不到就返回找不到

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rukz2gli-1637973206838)(C:\Users\够钟ic\AppData\Roaming\Typora\typora-user-images\image-20210808205515161.png)]

3、HTTP讲解

3.1 什么是HTTP

  • HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。

3.2 两个时代

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

3.3 http请求

  • 客户端—发请求—服务器

以百度为例:

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.com
1、请求行
  • 请求行中的请求方式:GET
  • 请求方式有get,post
    • get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
    • post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效

在这里插入图片描述

2、消息头
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地址?

    1. Chrome浏览器会首先搜索浏览器的DNS缓存(缓存时间比较短,TTL默认是1000,且只能容纳1000条缓存),看自身的缓存中是否有www.bilibilli.com对应的条目,而且没有过期,如果有且没有过期则解析到此结束。

      注:我们怎么查看浏览器的DNS缓存?可以使用 chrome://net-internals/#dns 来进行查看

    2. 如果浏览器自身的缓存里面没有找到对应的条目,那么Chrome会搜索操作系统的DNS缓存,如果找到且没有过期则停止搜索解析到此结束。

      注:怎么查看操作系统的DNS缓存,以Windows系统为例,可以在命令行下使用 ipconfig /displaydns 来进行查看

    3. 如果在Windows系统的DNS缓存也没有找到,那么尝试读取hosts文件(位于C:\Windows\System32\drivers\etc),看看这里面有没有该域名对应的IP地址,如果有则解析成功。

    4. 如果在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、图片等)

  • –> 浏览器对页面进行渲染呈现给用户

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-28 11:37:38  更:2021-11-28 11:38:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/6 7:57:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码