购物网站制作例子,快递物流公司网站模板,网络公司排行,小程序代理注册一、HTTP 协议基础
HTTP 简介
HTTP 是一个客户端终端#xff08;用户#xff09;和服务器端#xff08;网站#xff09;请求和应答的标准#xff08;TCP#xff09;。通常是由客户端发起一个请求#xff0c;创建一个到服务器的 TCP 连接#xff0c;当服务器监听到客户…一、HTTP 协议基础
HTTP 简介
HTTP 是一个客户端终端用户和服务器端网站请求和应答的标准TCP。通常是由客户端发起一个请求创建一个到服务器的 TCP 连接当服务器监听到客户端的请求时便会向客户端返回一个状态和内容。如下图所示便是客户端发起请求服务端响应的一个简单过程。 HTTP 工作原理
HTTP工作原理主要涉及客户端和服务器之间的交互。 当我们在浏览器中输入网址并回车后浏览器会向服务器发送一个HTTP请求。这个请求由多个部分组成包括请求行、头部和正文。请求行包含请求方法、请求URI和HTTP版本号如GET、POST、PUT、DELETE等。请求URI指定了要访问的资源的位置。HTTP版本号表示请求所使用的HTTP协议版本。头部包含了一系列的键值对用于向服务器传递一些请求信息。例如Accept表示客户端可以接受的响应内容类型User-Agent表示客户端的浏览器信息Referer表示客户端从哪个页面跳转而来等等。正文是可选的用于向服务器传递一些数据。例如当客户端向服务器提交表单时表单数据就可以放在请求的正文中。服务器接收到请求消息后根据请求消息的URL和相应的处理逻辑生成服务器响应消息并将其发送给客户端。响应消息中包含协议版本、状态码、响应头和响应体等信息。状态行包含HTTP版本号、状态码和状态短语。HTTP版本号表示响应所使用的HTTP协议版本。状态码是一个三位数字用于表示服务器对请求的处理结果如200表示成功、404表示未找到资源、500表示服务器内部错误等等。状态短语是对状态码的简短描述例如200对应的状态短语是OK404对应的状词短语是Not Found。头部包含了一系列的键值对用于向客户端传递一些响应信息。例如Content-Type表示响应内容的类型Content-Length表示响应内容的长度Set-Cookie表示服务器要求客户端保存一个Cookie等等。正文是响应的实际内容。例如当客户端请求一个网页时网页的HTML代码就可以放在响应的正文中。
HTTP 特点 支持客户/服务器模式HTTP协议支持客户/服务器模式客户端向服务器发起请求并接收响应。简单快速HTTP协议简单且快速客户端向服务器发送请求时只需传送请求方法和路径响应也较为迅速。灵活HTTP允许传输任意类型的数据对象具有灵活性这意味着它不仅可以传输文本还可以传输图片、音频、视频等非文本数据。无连接HTTP协议无连接即限制每次连接只处理一个请求。服务器处理完客户的请求并收到客户端的应答后即断开连接以节省资源。无状态HTTP协议无状态每个请求都是独立的这意味着服务器不会保存之前和现在的请求和响应之间的关联。
HTTP 和 HTTPS
上面介绍 HTTP 的工作原理和特点看起来是一个很不错的协议但是 HTTP 也存在许多不足特别是在安全方面。HTTP 通信使用明文传输并且在通信中是不验证通信方的身份也无法证明报文是完整的因此使用 HTTP 通信有可能使内容被窃听通信方身份被伪装报文遭篡改。
HTTP 协议中是没有加密机制但是可以和 SSLSecure Socket Layer 或 TLSTransport Layer Security组合使用从而加密 HTTP 的通信内容。即出现了 HTTPS。HTTPS 中的 S 可以理解为是 Secure是以安全为目标的 HTTP 通道。大家可以这样理解 HTTPS HTTP 加密 认证 完整性保护。
细心的同学应该会发现在一些大型网站特别是银行、支付等网站使用的都是 HTTPS因为它更安全。 二、HTTP 协议介绍
1.URL URL是互联网上标准资源的地址一般称为统一资源定位符。 组成 协议 :// hostname[:port] / path / [? 查询参数1 查询参数2] 如 2. HTTP协议 HTTP超文本传输协议基于请求与响应的应用层协议。 作用规定了客户端与服务器之间信息传递规范是二者共同遵守的协议。 组成 HTTP请求定义请求数据格式 请求行、请求头、请求体 HTTP响应定义响应数据格式 状态行、响应头、响应体
我们以瑞吉外卖项目为例,在登录界面发送了一个请求按住F12进行调试 1.请求行 位置请求数据 第一行 作用说明 请求方法 、 访问的资源 、协议版本 请求行分为三个部分请求方法、请求地址 URL 和 HTTP 协议版本它们之间用空格分割。例如下图中的POST /employee/login HTTP/1.1。 请求方法
HTTP/1.1 中定义的请求方法有 8 种分别是 GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE。GET 和 POST 是最常见的两种请求方法。如果是 RESTFul 接口则是 GET、POST、DELETE、PUT。 GET从服务器获取资源 POST在服务器新建一个资源 PUT在服务器更新资源 DELETE: 从服务器删除资源 协议版本 协议版本的格式为协议名称/主版本号.次版本号常见的有 HTTP/1.0 和 HTTP/1.1。 2.请求头
位置请求数据第二行到空白行之间
作用通知服务器客户端请求信息 特点请求头部由 键值对 组成每行一对 Content-Type请求体数据类型 text/htmlHTML格式 image/jpegjpg图片格式 application/jsonJSON数据格式 application/x-www-form-urlencoded: 表单默认的提交数据格式 multipart/form-data在表单中进行文件上传时使用
3.请求体 4.响应行 位置响应数据 第一行 作用描述服务器处理结果 内容: 状态行由协议版本号、 状态码 、状态消息组成 分为三个部分HTTP 协议版本、状态码和状态码描述它们之间用空格分割。例如 HTTP/1.1 200 OK。
HTTP 协议版本与请求行中的协议版本一致格式为协议名称/主版本号.次版本号常见的有 HTTP/1.0 和 HTTP/1.1。状态码表示网页服务器超文本传输协议响应状态的 3 位数字代码。第一个数字代表当前响应的类型。例如 1xx 表示请求已经被服务器接收需要继续处理。状态码描述也叫状态描述是对状态码的一个说明。
HTTP 常见响应码
我们经常会听到开发人员说200、404、500 等数字其实说的就是状态码。
HTTP 状态码HTTP Status Code由三个十进制的数字组成。状态码的第一个数字定义了状态码的类别HTTP 状态码总共有五种类别如下所示
1xx信息。表示服务器接收到请求需要继续处理。2xx成功。请求已经被成功接收并处理。3xx重定向。需要客户端采取进一步操作才能完成请求。4xx客户端错误。客户端发送的请求有语法错误或者请求无法实现。5xx服务端错误。服务器在处理请求的过程中发生了错误或者异常状态发生也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。
下面列举出一些常见的状态码
状态码英文名描述100Continue客户端应当继续发送请求101Switching Protocols服务器根据客户端的请求切换协议200OK请求成功。请求所希望的响应头或数据体将随此响应返回203Accepted服务器已经接受请求但未处理完成204No Content服务器成功处理但未返回内容301Moved Permanently请求的资源已被永久的移动到新 URI浏览器会自动定向到新 URI305Use Proxy被请求的资源必须通过代理才能被访问400Bad Request客户端请求的语法错误服务器无法理解401Unauthorized请求要求用户的身份认证403Forbidden服务器理解请求但是拒绝执行此请求404Not Found请求失败服务器上无法找到请求的资源500Internal Server Error服务器内部错误无法完成请求503Service Unavailable由于超载或系统维护服务器暂时无法处理客户端的请求505HTTP Version not supported服务器不支持或者拒绝支持请求中使用的 HTTP 协议的版本 5.响应头 响应头部用来说明客户端需要使用的一些附加信息。与请求头部类似包含若干个属性每行一对传递着固定的信息。格式为属性名:属性值。下面列举一些响应头部内容。
响应头说明示例Server服务器应用程序软件的名称和版本Server: TengineDate此消息被发送时的日期和时间Date: Tue, 15 Jun 2021 11:28:29 GMTContent-Type当前文档的 MIME 类型Content-Type: text/html; charsetutf-8Content-Encoding当前文档使用的编码方式Content-Encoding: brExpires超过该时间则认为文档已经过期Expires: Fri, 01 Jan 1990 00:00:00 GMT 6.响应体
作用服务器返回的数据实体 特点: 有图片、json、xml、html等多种类型