网上收集整理,仅供笔记参考学习
计算机网络通关整理1-OSI、TCP/IP、Socket、IP地址
计算机网络通关整理2-TCP、UDP、 三次握手、四次挥手、流量控制、拥塞控制、粘包
计算机网络通关整理3-HTTP、状态码、Cookie、Session、HTTPS、Socket
HTTP
HTTP:超文本传输协议
请求类型:GET、POST、HEAD、PUT、DELETE、OPTIONS、
常用:GET、POST
GET和POST区别
GET | POST |
---|---|
GET 一般用于获取或者查询资源信息 | POST 一般用于更新资 源信息 |
客户端把要发送的数据添加到 URL 后面 | 要传递的数据放到 HTTP 请求报文的消息体 |
GET 请求的数据会被浏览器缓存起来,有历史记录 | POST 提交的数据不 会被浏览器缓存,无历史记录 |
1. Http请求报文和响应报文
Http的请求报文
三部分组成:请求行、请求头、请求体
请求行:请求方法、URL、http版本协议
请求头:为请求报文添加一些附加信息,以“名/值”键值对的形式,之间用冒号表示。
空行:请求头最后有一个空行,表示请求头结束。
请求体:GET请求没有请求体
Http的响应报文
三部分:状态行、响应头、响应体
状态行:协议版本,状态码,状态码描述,之间由空格分隔;
响应头:与请求头类似,为响应报文添加了一些附加信息。
响应体:响应的jsp代码等
Http的请求报文和响应报文的首部字段
通用:Data、Connection、Cache-Control、Transfer-Encoding
请求:Host、Accept、Accept-Charset、Accept-Encoding、Accept-Language、Referer
响应:Accept-Ranges、Location、Server
实体(请求体/响应体):Allow、Content-Type、Content-Encoding、Content-Language、Content-Length、Content-Range
2. Http 状态码
2*:请求成功
3*:重定向
4*:客户端请求问题
5*:服务端问题
100:告诉客户端应该继续发送请求
200:请求被正常处理
202:服务器接受了请求,但是还没有处理,而且这个请求最终会不会处理还不确定
204:请求被受理但没有资源可以返回
301:永久性重定向
302:临时重定向
307:临时重定向,与302类似,只是强制要求使用POST方法
403:请求的对应资源禁止被访问
404:服务器无法找到对应资源
500:服务器内部错误
503:服务器正忙
3. 四种会话跟踪技术
1.Cookie
2.Session
3.URL 重写
4.作为隐藏域嵌入 HTML 表单中(隐藏表单域)
3.1 cookie和session
(1)cookie数据保存在客户端。session数据保存在服务端
(2)cookie可以减轻服务器压力,但是不安全,容易进行cookie欺骗
(3)session安全一点,但是占用服务器资源。
4. Http缓存机制
缓存首部字段:**Last-Modified **、**If-Modified-Since **
都是用于记录页面最后修改时间的HTTP头信息
Last-Modified是由服务器往客户端发送的HTTP头
If-Modified-Since 则是由客户端往服务器发送的
5. Http1.1和Http1.0的区别(Http1.1的4个新特性)
1.默认持久连接和流水线
持久连接:只要客户端服务端任意一端没有明确提出断开 TCP 连 接,就一直保持连接,在同一个 TCP 连接下,可以发送多次 HTTP 请求
流水线:客户端每遇到一个对象引用就立即发出一个请求,而不必等到收到前一个响应之后才能发出下一个请求
Http1.0:默认短连接,可利用Keep-Alive 头来维持长连接
2.分块传输数据
使发送方能将消息实体 分割为任意大小的组块(chunk),并单独地发送他们
3.状态码 100 Continue
HTTP/1.1 加入一个新的状态码 100 Continue,用于客户端在发送 POST 数据给服务器前,征询服务器的情况,看服务器是否处理 POST 的数据。
4.Host 域
HTTP1.1 在 Request 消息头里多了一个 Host 域,HTTP1.0 则没有这个域
5.1 长连接和短连接
HTTP 协议的长连接和短连接,实质上是 TCP 协议的长连接和短连接
http 长连接的优点:
1.通过开启和关闭更少的 TCP 连接,节约 CPU 时间和内存。
2.通过减少 TCP 开启和关闭引起的包的数目,降低网络阻塞。
http 长连接的缺点:
服务器维护一个长连接会增加开销。
http 短连接的优点:
服务器不用为每个客户端连接分配内存来记忆大量状态,也不用在客户端失去连接时去清理内存,节省服务器端资源,以更高效地去处理业务。
http 短连接的缺点:
如果客户请求频繁,将在 TCP 的建立和关闭操作上浪费时间和带宽。
HTTPS
http的安全问题:
a、通信使用明文不加密,内容可能被窃听
b、不验证通信方身份,可能遭到伪装
c、无法验证报文完整性,可能被篡改
HTTPS 就是 HTTP 加上加密处理(一般是 SSL 安全通信线路)+认证+完整性保护
HTTP、Socket和TCP
Socket与TCP的关系
Socket
是对 TCP/IP 协议的封装,Socket 只是个接口不是协议,通过 Socket 我们才能使用 TCP/IP 协议,除了 TCP,也可以使用 UDP 协议来传递数据。
Socket
的出现 只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口
TCP协议
是传输层协议,主要解决数据 如何在网络中传输,而HTTP
是应用层协议,主要解决如何包装数据
Socket与HTTP的关系
通常情况下Socket连接
就是TCP连接
但在实际网络应用中,若双方建立的是Socket连接
,服务器就可以直接将数据传送给客户端;若双方建立的是HTTP连接
,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端
http 只能基于 tcp,socket 不仅能走 tcp,而且还能走 udp,这个是 socket 的第一个特点。
Socket 效率高,至少不用解析 http 报文头部一些字段 。
HTTPS作用
• 内容加密 建立一个信息安全通道,来保证数据传输的安全;
• 身份认证 确认网站的真实性
• 数据完整性 防止内容被第三方冒充或者篡
HTTPS数据传输过程中用到的技术
- 对称加密算法
2.非对称加密算法:公钥和私钥
3.散列算法:验证数据的完整性。
4.数字证书:证明自己的身份
在浏览器中输入 URL 后,执行的全部过程。会用到哪些协议?(一次完整的 http 请求过程)
- 域名解析
- 为了将消息从你的 PC 上传到服务器上,需要用到 IP 协议、ARP 协议和 OSPF 协议。
- 发起 TCP 的 3 次握手
- 建立 TCP 连接后发起 http 请求
- 服务器响应 http 请求
- 浏览器解析 html 代码,并请求 html 代码中的资源(如 js、css、图片等)
- 断开 TCP 连接
- 浏览器对页面进行渲染呈现给用