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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> HTTP协议 -> 正文阅读

[网络协议]HTTP协议


?
?

什么是HTTP协议

  1. 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用广泛的一种网络协议。是工作在tcp/ip协议基础上的,所有的www文件都遵守这个标准。
  2. http1.0短连接http1.1长连接
  3. http是TCP/IP协议的一个应用层协议,http也是我们web开发的基础.
  4. http是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间(每次只传回一个文件)

?

chrome抓包

按F12
在这里插入图片描述

在这里插入图片描述

Get请求包分析

在这里插入图片描述

请求包解释
请求行---------------------------------------------------------------------------------------------------------
GET /http/loginServlet?username=tom&pwd=123
HTTP/1.1
请求行
GET:请求方式
/http/login=> URI资源
username=tom&pwd=123=>表单数据[是GET]
http/1.1表示协议和版本
请求头---------------------------------------------------------------------------------------------------------
Host:
localhost:8080
Host主机【域名+端口)】(服务端)
User-Agent:
Mozilla/5.0
(Windows NT 10.0; Win64; x64; rv:98.0)
Gecko/20100101 Firefox/98.0
浏览器/客户端信息firefix/97.0
Accept:
text/html,
application/xhtml+xml,
application/xml;q=0.9,
image/avif,
image/webp,
*/*;q=0.8
浏览器可以接受什么格式的返回数据text/html; …
假如返回的数据没有带格式,那么浏览器就会按照这个顺序一一匹配
Accept-Language:
zh-CN,zh;q=0.8,
zh-TW;q=0.7,
zh-HK;q=0.5,
en-US;q=0.3,
en;q=0.2
表示浏览器是接受什么语言
Accept-Encoding:
gzip, deflate
可以接受什么格式的压缩算法
如果返回的数据过大,tomcat可以使用浏览器可以接受的压缩算法压缩,返回给浏览器后,在解压展示
Connection:
keep-alive
表示连接长连接
Referer:
http:// localhost:8080/http/login.html
这个请求从那个页面发起的(防盗链)
比如:表单跳转到另一个网页,这里就是表单的URL
Cookie:表示浏览器发给服务器的cookie信息
If-Modified-Since:
Sat, 12 Mar 2022 00:31:20 GMT
浏览器开启缓存后,并且缓存中有该资源,请求头会发送缓存中该资源最近一次修改时间

?

Post请求包分析

在这里插入图片描述

请求包解释
请求行---------------------------------------------------------------------------------------------------------
POST /http/loginServlet HTTP/1.1
请求头---------------------------------------------------------------------------------------------------------
content-type表示提交的数据格式
x-www-form-urlencoded:表示我们的表单数据是url编码
告诉服务器数据是url编码,服务器接收到后,解码为对应数据,否则乱码
使用url编码避免歧义(比如输入数据有:空格/&/=)
content-length21表示发送的数据长度是21字节
Origin表示该请求是从哪个主机发出请求(客户端)
请求体---------------------------------------------------------------------------------------------------------
username=jack&pwd=123表单提交的数据

?

哪些是Get请求

  1. form标签method=get
  2. a标签
  3. link 标签引入css
  4. Script标签引入js文件
  5. img标签引入图片
  6. iframe 引入html页面
  7. 在浏览器地址栏中输入地址后敲回车

?

哪些是Post请求

  • form标签method=post

?

Get请求与Post请求

?
HTTP请求中怎样选择Get和Post方式
在大部分情况下,我们不需要考虑这个问题,因为业务本身就会自动区别,比如你要显示图片,引入css/js这个天然的就是get请求,比如你登录,发帖,上传文件,你就会使用post
?

传输的数据大小区别

  1. get传送的数据量较小。不能大于2KB(不同浏览器不一样)。
  2. post传送的数据量较大。一般默认不受限制。

?
什么情况下使用post请求

  1. post请求是会在浏览器上隐藏参数部分的,在安全要求的部分都会使用到POST请求。如用户登录。数据增删改等等。都会把参数隐藏起来料这样就不会通过你的请求暴露你的参数格式。
  2. 在向server传递数据较大的时候。使用POST,get是有限制的,比如发帖,上传文件

?
什么情况下使用get方式呢

  • 在前台页面展示,比如分页内容等,可以保留传递参数,可用来非常好的分享和传播,POST中链接地址是不变化的。

?
建议

  • get方式的安全性较Post方式要差些。包括机密信息的话。建议用Post数据提交方式;

?
?

HTTP响应包的说明

在这里插入图片描述

在这里插入图片描述

响应头解释
响应行---------------------------------------------------------------------------------------------------------
HTTP/1.1 200 OK响应行
http/1.1协议
200:状态码
OK描述
响应头---------------------------------------------------------------------------------------------------------
Server:
Apache-Coyote/1.1
服务器相关消息
Accept-Ranges:
bytes
byets字节 -> 支持断点续传
ETag:
W/“156-1647004517011”
对资源的标识(token)
Last-Modified:
Fri, 11 Mar 2022 13:15:17 GMT
返回的资源最近修改的时间
1.如果请求包的时间与请求的服务器同一个资源时间相同,则服务器不会返回资源,浏览器使用缓存中的资源
2.如果请求的服务器上的资源比请求包的时间要晚,则会返回最新资源
Content-Type:
text/html
表示返回资源的类型,浏览器就会按照这样的格式展示
Content-Length:
156
返回资源的大小(字节)
Date:
Fri, 11 Mar 2022 14:53:56 GMT
服务器响应时间
响应体---------------------------------------------------------------------------------------------------------
服务器请求的数据---------------------------------------------------------------------------------------------------------

这两个合起来才是响应包
在这里插入图片描述
在这里插入图片描述

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Transfer-Encoding: chunked
Date: Fri, 11 Mar 2022 14:21:48 GMT

<h1>登录成功<h1>

?
?

常见响应状态码

200

请求成功。一般用于GET与POST请求
?

404

服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
?

500

服务器内部错误,无法完成请求
在这里插入图片描述
在这里插入图片描述
?

302

浏览器访问服务器某个应用的资源时,因为种种原因,这个应用不在提供这个服务,就会发出这种请求,并且告诉浏览器现在是那个应用提供这个服务,浏览器接收到请求会再次向新的应用发出请求(重定向)

在这里插入图片描述

package com.study.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author 珀筱
 */
@WebServlet(name = "T1Servlet", urlPatterns = {"/t1"})
public class T1Servlet extends HttpServlet {

    //这里我们把 doGet 和 doPost合并处理
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //如果有一个请求来
        //重定向到hi.html
        //(1)返回302状态码(2)响应头Location:/hi.html
        response.sendRedirect("/http/hi.html");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

在这里插入图片描述

?

304

这就是tomcat不需要刷新,浏览器可也可以看到静态资源的最新状态,就是通过两次时间的做对比,如果请求的静态资源的最近一次修改时间发生变化,服务器就会返回该资源,如果两次时间一样,服务器会返回304状态码,而浏览器就会使用缓存中的数据
在这里插入图片描述
在这里插入图片描述
?

MIME类型

在这里插入图片描述
在这里插入图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 22:11:44  更:2022-03-13 22:12:37 
 
开发: 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年11日历 -2024/11/26 6:46:00-

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