当前位置: 首页 > news >正文

HTTP(2)~

一、请求方法

在这里插入图片描述
方法,就是HPPT这次请求,要进行的一个动作,每种方法都有其对应的特点,接下来主要介绍GET、POST、PUT、DELETE

  1. GET方法
    通常情况下,是没有正文的(HTTP协议就是在TCP的基础上,构造出特定的字符串写到TCP socket中的),GET是获取资源的,那么到底获取哪个资源呢?
    是通过URL路径和query string,下面抓个包举例
    在这里插入图片描述
  2. POST方法
    通常情况下,是有正文的,并且在登录和上传文件时特别容易出现POST,下面抓个包举例
    在这里插入图片描述
  3. PUT方法
    通常情况下,是有正文的,有幂等建议,一般用于更新,其中占比很少很少,就不抓包了
  4. DEDLETE方法
    通常情况下,是没有正文的,一般用于删除,其中占比很少很少,就不抓包了

二、GET和POST的区别

  1. 其实没有本质区别,能用GET的地方也能用POST,能用POST的地方也能用GET,但在使用习惯上存在一定区别
  2. GET通常表示获取数据,POST通常表示提交数据
  3. GET通常把给服务器传递的数据放到query string中,POST通常放在body

以下有几种错误/不准确的说法:

  1. GET请求一般实现成幂等,POST请求没有幂等要求
    幂等:请求重复产生之后,结果是明确的,就可以认为是幂等的。若结果是幂等的,就可以做缓存了
    请求相同,都是GET,但是实际上网站的内容,是不同的
  2. GET请求不安全,POST请求安全
    GET实现登录是将用户名和密码填在URL的query string中,会显示在地址栏中
    POST实现登录,用户名和密码在body中,不会出现在页面上
    安全的关键在于加密
  3. GET单次请求传输的数据量较小,POST单次传输的数据量较大
    IE浏览器对URL长度有限制,但是IE浏览器已经灭亡好多年了,现在的URL可以很长
  4. 针对GET请求只能传输文本数据,POST可以传输文本数据和二进制数据
    二进制数据,可以通过URLencode/base64转为文本,通过GET的URL传输

三、请求头

  1. Host
    在这里插入图片描述
    host通常把域名中的IP和端口号列出来

  2. Content-Length
    在这里插入图片描述
    Content-Length表示请求体中数据的字节长度,可能在请求头也可能在响应头中

  3. Content-Type
    在这里插入图片描述Content-Type: application/json,表示请求体中数据的内容格式,常见取值有:text/html、text/css、appliciation/javascipt、appliciation/json、image/jpg、image/png、text/plain对于浏览器来说,如果是html,就按html的规则解析,渲染网页的骨架,如果是css,就按照css的规则解析,渲染成网页的样式(颜色、大小、位置、字体…),如果是js,就执行js中的逻辑,如果是json,浏览器不会自行处理,由浏览器中的json代码处理,如果是图片,就按照图片的格式展示

  4. User-Agent
    在这里插入图片描述
    User-Agent 表示客户端的类型、操作系统、浏览器版本等信息

  5. Referer
    在这里插入图片描述
    Referer包含了请求来源的 URL(即用户从哪个页面链接过来的),与浏览器的前进和后退无关,并且是发送给服务器的

  6. Cookie
    在这里插入图片描述
    Cookie是浏览器这端,本地存储的一种机制(Cookie能保存用户的登录状态)
    有啥用:浏览器给网页提供的本地存储数据的方案
    从哪来:服务器返回的
    怎么存:按照字符串(键值对)方式存储
    到哪去:本地存储之后,后续访问同一个域名的网站,就会把Cookie中的内容通过请求报头,传输给服务器

四、状态码

  1. 1xx:信息响应
    表示请求已被接收,继续处理。这些状态码通常是临时的
  2. 2xx:成功
    表示请求已成功接收、理解和处理,常见200
  3. 3xx:重定向
    表示客户端需要采取进一步的动作才能完成请求,通常是重定向到一个新的 URL,其中302(临时重定向)301(永久重定向)
  4. 4xx:客户端错误
    表示客户端发送的请求包含语法错误或服务器无法处理,其中404(访问资源不在服务器上)403(拒绝访问)405(服务器不支持此方法)
  5. 5xx:服务器错误
    表示服务器在处理一个有效请求时发生了内部错误,其中500(服务器内部错误)504(服务器网关超时)

五、构造HTTP请求

  1. 通过form表单构造(HTML)
  2. 通过ajax构造(JavaScript)
  3. 通过Java socket构造
public static void main(String[] args) throws IOException, InterruptedException {//创建一个HTTPClient对象//创建实例的时候,使用 工厂方法HttpClient httpClient = HttpClient.newHttpClient();//创建一个 HttpRequest,表示一个HTTP请求HttpRequest request = HttpRequest.newBuilder().uri(URI.create("http://www.baidu.com")).GET().header("User-Agent","xxxx").build();//发送请求,得到响应//send执行之后就会阻塞等待,直到响应返回回来HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.statusCode());System.out.println(response.headers());System.out.println(response.body());}

运行结果:
在这里插入图片描述
编写代码构造的Http请求,是测试的一种方案,还有不写代码的方案
接下来介绍postman
在这里插入图片描述
安装一路next,接下来启动postman
在这里插入图片描述
可以搭配fiddler使用
在这里插入图片描述
在这里插入图片描述
本期内容到此为止,喜欢的话请点个赞,谢谢观看!!!

http://www.dtcms.com/a/486818.html

相关文章:

  • 建网站需要什么条件小户型室内装修设计公司网站
  • 【深度学习】目标检测全解析:定义、数据集、评估指标与主流算法
  • 做网站构架河南app定制开发
  • 2025年--Lc187--120. 三角形最小路径和(多维动态规划,矩阵)--Java版
  • 脑电分析——论文解读
  • HTTPS 包 抓取与分析实战,从抓包到解密、故障定位与真机取证
  • 做网站实训目的和意义公司网页制作培训试题
  • 影响DCDC输出纹波的因素有哪些?
  • 婴儿辅食中企动力提供网站建设自适应全屏网站
  • 【征文计划】Rokid CXR-M SDK全解析:从设备连接到语音交互的AR协同开发指南
  • 川崎焊接机器人弧焊气体节约
  • 做网站横幅价格wordpress 36kr
  • Java-Spring入门指南(二十六)Android Studio下载与安装
  • 14.C 语言实现一个迷你 Shell
  • 【理解React Hooks与JavaScript类型系统】
  • 如何使用PyTorch高效实现张量的批量归一化原理与代码实战
  • 文心快码Comate3.5S更新,用多智能体协同做个健康管理应用
  • 江苏赛孚建设工程有限公司网站做php门户网站那个系统好
  • OpenCV5-图像特征harris-sift-特征匹配-图像全景拼接-答题卡识别判卷
  • 计算机网络经典问题透视:以太网发送512bit后,碰撞还可能发生吗?
  • 免费网站管理系统昌邑建设网站
  • 初始Spring
  • wordpress站点标题看不到合肥建站企业
  • 网站空间哪家公司的好上海专业网站建设价
  • 考研数学笔记(概率统计篇)
  • HT6809:重塑音频体验的立体声 D 类功率放大器
  • Flutter对话框AlertDialog使用指南
  • 玩Android Flutter版本,通过项目了解Flutter项目快速搭建开发
  • 大数据毕业设计选题推荐-基于大数据的商店购物趋势分析与可视化系统-大数据-Spark-Hadoop-Bigdata
  • 网站标题符号的应用龙岩整站优化