【第四章:网络协议】第19节:网络协议 - 入门(下)
大家好,上一小节我们介绍了一些基础的网络协议和面试中的高频考点。本节我们继续介绍基础网络协议相关知识点,主要知识点包括HTTP和HTTPS相关协议,路由汇聚以及子网掩码的求法等。
(1)HTTP和HTTPS的区别有哪些?(掌握)
答:HTTP和HTTPS的主要区别可以总结如下:
- HTTP是超文本传输协议,数据明文传输;HTTPS在HTTP的基础上加入了SSL协议,实现数据的加密传输;
- HTTPS需要区申请证书,一般是收费的;
- HTTP默认使用80端口,HTTPS默认使用443端口
解析:
这是一网络协议的基础题目,请大家务必掌握。在这里我们一起更加详细的进行学习吧。既然HTTPS = HTTP + SSL,那么我们先来看何为HTTP协议吧。
HTTP协议:
HTTP是超文本传输协议,是一种无状态的协议,是常见的一种应用层协议。HTTP是一个通信规则,规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。
HTTP请求信息:HTTP请求头中可以看到当前请求支持的语言,压缩格式,编码格式以及何种类型的返回文件,Connection以及Cookie,Content-Type等信息。
HTTP返回信息:HTTP返回信息中包括响应协议,HTTP Code以及Content-Type,时间和Cookie等信息。
(HTTP请求和返回的具体信息,大家可以任意打开一个网址,F12查看每一个具体的HTTP请求的请求和返回信息)
面试官:“HTTP请求中的Get和Post方法有哪些区别?”
- Get一般用来从服务器上查询获取资源;Post一般用来更新服务器上的资源;
- Get方法将参数直接拼接在了URL后边,明文显示,可以通过浏览器地址栏直接访问;
- Post请求用于提交表单,数据不是明文的,安全性更高;
- Get请求有长度限制,Post请求没有
面试官:“常见的HTTP Code有哪些?”
- 1xx(临时响应)
- 2xx(成功)
- 3xx(重定向):表示要完成请求需要进一步操作
- 4xx(错误):表示请求可能出错,妨碍了服务器的处理
- 5xx(服务器错误):表示服务器在尝试处理请求时发生内部错误
接着,我们可以给出具体的状态码。
常见HTTP协议的状态码:
- 200(成功)
- 302 (重定向):请求重定向到指定网页
- 304(未修改):自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容
- 401(未授权):请求要求身份验证
- 403(禁止):服务器拒绝请求(比如死循环了,一直访问)
- 404(未找到):服务器找不到请求的网页
- 405 (方法禁用):Post请求当成了Get请求直接访问
- 500 (服务器内部错误):有bug导致程序嗝屁了
- 502 (错误网关):服务器从上游接到了无效响应
- 504 ( 网关超时):nginx请求超时,请求一直没有返回
这里简单阐述304的含义,304表示上次请求结束到现在,目标网页内容未改变,客户端可以直接显示上次的内容。通过客户端和服务端之间的一个Last-Modified来判断。如下所示:
前面我们说到了HTTP是一种无状态的协议,也就是说每一次请求都是一个独立的会话,那么会话状态(比如说用户的登录状态)该如何保持呢?
面试官:“cookie和session有了解吗?“
HTTP协议是一种无状态的协议,我们可以使用cookie和session来保持会话状态。用户发起请求,服务端收到请求处理后可以生成一个sessionId,并且将sessionId存入cookie中返回给客户端,将session的内容存储在服务器上。在下一次的请求中,客户端带着cookie来请求服务器,服务端从cookie中取出sessionId,实现了用户会话状态的保持。
这样做有一个缺点就是将一些东西存在了服务器上,在用户量较大的情况下,服务器容量会不足。实际情况中,经常是将所需要的会话状态,比如说登录态直接存入cookie并且返回给客户端,下次请求时,服务端直接取出cookie中的信息和参数信息进行比较,保持HTTP会话状态。
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
<p> Java开发岗高频面试题全解析,专刊正文共计31节,已经全部更新完毕。专刊分9个模块来对Java岗位面试中的知识点进行解析,包括通用面试技能,Java基础,Java进阶,网络协议,常见框架以及算法,设计模式等。专刊串点成面的解析每个面试题背后的技术原理,由浅入深,循序渐进,力争让大家掌握面试题目的背后的技术原理,摒弃背题模式的陋习。 专刊详细信息,请查阅专刊大纲和开篇词的介绍。 本专刊购买后即可解锁所有章节,故不可以退换哦~ </p> <p> <br /> </p>