网络基础

HTTP协议简介

Web使用一种名为HTTP(HyperText Transfer Protocol,超文本传输协议)的协议作为规范,完成从客户端到服务器等一系列运作流程。而协议是指规则的约定。可以说,Web是建立在HTTP协议上通信的

TCP/IP 协议族

  1. 应用层

应用层规定了向用户提供应用服务时通信的协议,如:

TCP/IP 协议族内预存了各类通用的应用服务协议。比如,FTP(File Transfer Protocol,文件传输协议)、DNS(Domain Name System,域名系统)以及HTTP协议。

DNS域名系统提供域名(如:www.baidu.com)到IP地址(如:119.75.217.109)之间的解析服务。

2.传输层

传输层对接上层应用层,提供处于网络连接中两台计算机之间的数据传输所使用的协议。

在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议,类似打电话)和UDP(User Data Protocol,用户数据报协议,类似发短信)。

3.网络层

网络层规定了数据通过怎样的传输路线到达对方计算机传送给对方(IP协议等)。

与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的所用就是在众多的选项内选择一条传输路线。就跟携程提供的回家路线图作用一样。

4.链路层

用来处理连接网络的硬件部分,包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在链路层的作用范围之内。

  • 串行连接 一次请求对应一次响应,每次请求都要进行三次握手四次挥手

  • 持久连接 一定时间内,同一域名下的HTTP请求,只要两端都没有提出断开连接,则持久保持TCP连接状态,其他请求可以复用这个连接通道

  • 管道化持久连接 管道化则可以不用等待响应返回而发送下个请求并按顺序返回响应,现代浏览器并未默认开启管道化。

  • HTTP/2.0多路复用

  • WebSocket: WebSocket是HTML5提出的一种客户端和服务端通讯的全双工协议,由客户端发起请求,建立连接之后不仅客户端可以主动向服务端发送请求,服务端可以主动向客户端推送信息。

HTTP协议缺点

  1. 通信使用明文不对数据进行加密(内容容易被窃听)
  2. 不验证通信方身份(容易伪装)
  3. 无法确定报文完整性(内容易被篡改

HTTP报文

用于HTTP协议交互的信息被称为HTTP报文。客户端的HTTP报文叫请求报文,服务端的HTTP报文叫响应报文。

请求报文 是由请求行(请求方法、协议版本)、请求首部(请求URI、客户端信息等)和内容实体(用户信息和资源信息等,可为空)构成。

响应报文 是由状态行(协议版本、状态码)、响应首部(服务器名称、资源标识等)和内容实体(服务端返回的资源信息)构成。

请求方法

GET:get方法一般用于获取服务器资源

POST:post方法一般用于传输实体主体

PUT:put方法一般用于传输文件

DELETE:delete方法用于删除文件

HEAD:head方法用于获取报文首部,不返回报文主体

OPTIONS:options方法用于询问请求URI资源支持的方法

状态码

2XX成功(这系列表明请求被正常处理了)
200OK,表示从客户端发来的请求在服务器端被正确处理
204No content,表示请求成功,但响应报文不含实体的主体部分
206Partial Content,进行范围请求成功
3XX重定向(表明浏览器要执行特殊处理)
301moved permanently,永久性重定向,表示资源已被分配了新的 URL
302found,临时性重定向,表示资源临时被分配了新的 URL
303see other,表示资源存在着另一个 URL,应使用 GET 方法获取资源(对于301/302/303响应,几乎所有浏览器都会删除报文主体并自动用GET重新请求)
304not modified,表示服务器允许访问资源,但请求未满足条件的情况(与重定向无关)
307temporary redirect,临时重定向,和302含义类似,但是期望客户端保持请求方法不变向新的地址发出请求
4XX客户端错误
400bad request,请求报文存在语法错误
401unauthorized,表示发送的请求需要有通过 HTTP 认证的认证信息
403forbidden,表示对请求资源的访问被服务器拒绝,可在实体主体部分返回原因描述
404not found,表示在服务器上没有找到请求的资源
5XX服务器错误
500internal sever error,表示服务器端在执行请求时发生了错误
501Not Implemented,表示服务器不支持当前请求所需要的某个功能
503service unavailable,表明服务器暂时处于超负载或正在停机维护,无法处理请求

TCP三次握手

  1. 客户端 -> (请求建立链接) -> 服务端
  2. 客户端 <- (确认建立链接) <- 服务端
  3. 客户端 -> (确认链接over) -> 服务端 接下来就可以愉快的传输数据了 img

TCP四次挥手

  1. 客户端 -> (请求关闭链接) -> 服务端
  2. 客户端 <- (确认关闭链接请求) <- 服务端
  3. 客户端 <- (确认关闭链接) <- 服务端
  4. 客户端 -> (确认关闭链接) -> 服务端 再见, 下次再见(如果服务器HTTP协议不支持长连接就断开了) img

服务端
4. 客户端 -> (确认关闭链接) -> 服务端 再见, 下次再见(如果服务器HTTP协议不支持长连接就断开了) [外链图片转存中…(img-u4Q3QBkW-1618738793820)]

img

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值