HTTP协议格式、URL格式及URL encode

14 篇文章 1 订阅
订阅专栏

系列文章目录

Fiddler抓包:下载、安装及使用_crazy_xieyi的博客-CSDN博客


文章目录

  • 一、请求格式(Request)
  • 二、响应格式(Response)
  • 三、HTTP协议格式总结
  • 四、URL格式  &  URL encode

前言

我们在查看http请求/响应的时候,可以用Fiddler抓包工具。 Fiddler抓包:下载、安装及使用_crazy_xieyi的博客-CSDN博客

一、请求格式(Request)

首行:方法 URL 版本号

请求头:包含了若干个键值对,每一个键值对占一行,键和值之间使用 冒号+空格 分割

空行:作为请求头的结束标记

请求正文:有的有正文,有的没有正文(可有可无)


HTTP请求是一个“行文本”,一行一行的组织数据,每一行都有特定的含义。

1.首行

27f0dbf08715452caa84e6cf7296a694.png

 2.首部(请求头)Header

header这里就是一堆键值对,键值对与键值对之间,使用 换行 来分割;键和值之间,使用 冒号+空格 来分割;header中具体有多少行是不固定的,具体是使用 空行 来作为header的结束标记。

a23777a5f2054b9c84b0f9b979e14062.png

二、响应格式(Response)

首行:版本号 状态码 状态码描述

响应头:包含了若干个键值对,每一个键值对占一行,键和值之间使用 冒号+空格 分割

空行: 作为响应头的结束标记

响应正文: 有的响应有正文,有的则没有,一种常见的格式就是HTML,当然这里具体格式要看程序猿自己是怎么写的


1.首行

f27f37c417f64644b0f97c17af352704.png

 2.响应头

包含了若干个键值对,每一个键值对占一行,键和值之间使用 冒号+空格 分割

858707c3c5f1436ab2baea8541685100.png

三、HTTP协议格式总结

ed346468d477456f8943164de176dbef.png

 为什么HTTP报文中要存在“空行”?

因为HTTP协议格式并没有规定报头部分的键值对有多少个,空行就相当于是报头的结束标记。

而且HTTP在传输层依赖TCP协议,TCP是面向字节流的,如果没有空行存在,就会存在“粘包问题”。        

四、URL格式  &  URL encode

URL就是我们平时俗称的“网址”。

URL 的详细规则由因特网标准RFC1738 进行了约定. (https://datatracker.ietf.org/doc/html/rfc1738)

URL格式:

cfad3daf904c4ccd923b1c8eb8c1481a.png

1. 协议名称:http://

2.服务器地址:可以是域名,也可以是IP

3.端口号:可以省略,不写端口号,浏览器在构造请求的时候会自动加上端口号,对于HTTP是80,HTTPS是443。

4.路径:描述了要访问服务器上具体哪个资源

5.查询字符串:这里是程序员自己定义的一组键值对,从浏览器传递给服务器,查询字符串是以 ?开头的,然后键值对与键值对之间使用 & 来分割,键和值之间用等号来连接。

6.片段标识符:定位一个网页内部的一个位置的。62c6d8bcc6ce44dbbcffaef82e1258df.png

 但是,这些都不是必须的:

ab7cbb6ff46c44edb4f2a58a46e28aec.png

 

URL encode

像 / ? : 等这样的字符, 已经被url当做特殊意义理解了,因此这些字符不能随意出现。
 
比如, 某个参数中需要带有这些特殊字符, 就必须先对特殊字符进行转义。
 
转义的规则如下: 将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。
 
UrlEncode编码和UrlDecode解码-在线URL编码解码工具
 
 

0f5d95c9d44d4205a300bdbe80d1f1bc.png

 a2326111570e4d63b6ade6070e935158.png

 

 

 


 

 

网络传输文本,urlEncode和decode的实现。
03-04
网络传输文本,urlEncode和decode的实现。 在vs 2005上通过实验。
JavaScript给url网址进行encode编码的方法
10-24
主要介绍了JavaScript给url网址进行encode编码的方法,实例分析了javascript中encodeURIComponent函数的使用技巧,需要的朋友可以参考下
为什么url encode
u010227042的博客
06-06 439
汇总整理: 这个问题涉及到URL的定义。我们知道URL是为了 统一的命名网络中的一个资源(URL不是单单为了HTTP协议而定义的,而是网络上的所有的协议都可以使用)。 所以这就要求URL有一些基本的特性: URL是可移植的。(所有的网络协议都可以使用URLURL的完整性。(不能丢失数据,比如URL中包含二进制数据时,如何处理) URL的可阅读性。(希望人能阅读) 因为一些历史的原因URL设计者使用US-ASCII字符集表示URL。(原因比如ASCII比较简单;所有的系统都支持ASCII) 为
详解 HTTP 协议报文格式 & 构造 HTTP 请求
xaiobit_hl的博客
09-27 3080
详解 HTTP 协议报文格式 & 构造 HTTP 请求
HTTP基础:URL格式HTTP请求、响应、消息
weixin_34121282的博客
05-26 189
   HTTP基础:URL格式HTTP请求、响应、消息   HTTP URL   格式:   http://host[:port][abs_path]   其中http表示要通过HTTP协议来定位网络资源。   host表示合法的Internet主机域名或IP地址(以点分十进制格式表示);   port用于指定一个端口号,拥有被请求资源的服务器主机监听该端口的TCP连接。  ...
httpurl格式
Rand Tsui
04-27 250
┌────────────────────────────────────────────────────────────────────────────────────────────────┐ │ href │ ├──────────┬──┬─────────────────────┬────────────────────.
http url encode/decode 总结
u011090495的专栏
01-27 1654
经常需要对url进行encoding,但从来没有深究过为什么需要这么干,以及encoding的原理。年终了,今天静心总结哈。 URL,全称 Uniform Resource Locator,统一资源定位符/统一资源标记,也就是一个web页面的地址,浏览器通过这个地址从服务器请求一个页面。 URL 要在 Internet 上传输,必须使用 ASCII 字符集。由于实际应用中 URL 经常包含一些
URL Encode
hurryboylqs的专栏
07-01 4313
用VC实现post数据常常会遇到URL编码问题在此封装一个工具类进行UTF8编码的转换源码来自php source code只是简单的封装给C++调用//URL 编解码类 //来自PHP源码 class CRtUrlConv { public: static char *urlencode(const char *in_str ) { char *out_str; int in_str_len, out_str_len; in_str_len=strlen(in_s
Fiddler之HTTP协议缓存、压缩与URL Encode
01-08
HTTP协议中的缓存  HTTP缓存:当web请求到达缓存时,如果本地有“已缓存”,就可以从本地缓存设备提取文档,而不需要从服务器中提取  缓存的优点:  1.减少冗余的数据传输,节省传输时间  2.减少了服务器的负担...
音频格式转换Encode.exe
07-06
音频格式转换器
Url Encode Decode
07-07
C++的UrlEncode UrlDecode代码。
HTML码URL-encode码转换器
05-05
自己动手写了一个HTML码URL-encode码转换器,给大家分享一下。
url encode
chmod777
01-22 121
常用的两种方法: [code="javascript"] var str = encodeURI("中国"); var str = encodeURIComponent("中国");//baidu用的是这个方法 [/code] 经过编码后的url在服务器上不用调用url_decode解码,服务器会 直接解析。 有一点要说明的是:在Firefox3中,即使你进行了url encode,...
URL encode
smoggyxhdz的博客
10-05 589
找一个在线的url解码网站就行,然后登陆到目标网站 Your task is to decode the following: %59%69%70%70%65%68%21%20%59%6F%75%72%20%55%52%4C%20%69%73%20%63%68%61%6C%6C%65%6E%67%65%2F%74%72%61%69%6E%69%6E%67%2F%65%6E%63%6F%64
关于HTTP协议,一篇就够了
wenjianfeng的专栏
05-11 616
HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系...
Java EE-Spring Session实现(如何导入依赖、配置文件)
最新发布
weixin_70495659的博客
06-04 416
它把 servlet 容器实现的 httpSession 替换为 spring-session ,Session 信息存储在 Redis 或其它数据库中统一管理,解决了 session 共享的问题。Spring Session 是 Spring 家族中的一个子项目,Spring Session 提供了用于管理用户会话信息的 API 和实现。在 Web 项目开发中,Session 会话管理是一个很重要的部分,用于存储与记录用户的状态或相关的数据。
delphi11 URL编码格式
07-09
在Delphi 11中,URL编码格式使用TNetEncoding.URL.EncodeQuery方法来编码URL参数。该方法将参数编码为URL安全的格式,以便在URL中使用。 以下是一个示例: ```delphi uses System.Net.URLClient; var URL: string; EncodedURL: string; begin URL := 'http://www.example.com?param1=value1&param2=value2'; // 对URL进行编码 EncodedURL := TNetEncoding.URL.EncodeQuery(URL); ShowMessage(EncodedURL); end; ``` 在上述示例中,我们使用TNetEncoding.URL.EncodeQuery方法对URL进行编码。它将URL参数中的特殊字符转换为URL安全的格式,以便在URL中传递。 请注意,TNetEncoding.URL.EncodeQuery方法只会编码URL参数部分,不会对整个URL进行编码。如果您要对整个URL进行编码,包括协议、主机等部分,可以使用TNetEncoding.URL.Encode方法。 希望这个示例对您有所帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Linux常用命令详解 15949
  • HTTP协议中的“报头”(header)和 “正文“ (body)详解 12245
  • 使用IDEA社区版如何创建SpringBoot项目? 12014
  • 表白墙服务器版【交互接口、服务器端代码、前端代码、数据存入文件/数据库】 7428
  • HTTPS 的传输过程 7123

分类专栏

  • Spring全家桶 20篇
  • 服务框架 4篇
  • Netty 1篇
  • Java 45篇
  • 数据结构与算法 23篇
  • 数据库 9篇
  • Linux 5篇
  • Git 1篇
  • 网络 14篇
  • 多线程 16篇
  • 前端 1篇
  • Servlet 7篇
  • C语言 21篇

最新评论

  • Spring事务的传播机制

    码农:抬头就是阳光: 文章逻辑写得真好,易懂

  • 多线程之Thread类常见方法及线程的状态

    野区捕龙为宠: 优质好文,博主的文章细节到位,内容干货很多,感谢博主的分享,期待博主持续带来更多好文。

  • 在IDEA中配置MySQL数据库连接以及在使用mybatis时设置sql语句的代码提示功能

    只是橘色仍温柔: 昨天晚上没成,今天上午弄好了,谢谢

  • 多线程之CAS

    清风傍雨: 解释的非常通俗易懂,感觉大佬细心讲解

  • Java中创建线程的五种方式

    crazy_xieyi: 是的,这里只是线程如何创建的示范哦

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • BIO、NIO线程模型
  • MyBatis参数传递(提供ParamNameResolver类来进行参数封装)源码分析
  • MyBatis中的#{}和${}有什么区别?
2023年45篇
2022年96篇

目录

目录

评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

crazy_xieyi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

深圳SEO优化公司民治模板制作哪家好北京如何制作网站报价泉州网站设计模板公司潍坊百姓网标王推广推荐坪山网站优化排名报价南昌网站seo优化报价宿迁百度网站优化公司鹤壁关键词按天收费哪家好大运seo网站优化价格来宾模板推广哪家好南山模板网站建设多少钱娄底网站优化按天计费公司保定百度竞价包年推广哪家好铜仁建设网站清远推广网站推荐襄阳百姓网标王推广阜阳seo网站优化推荐扬州SEO按天扣费绥化网站推广系统报价茂名百搜标王公司海南网站搭建晋中百度网站优化排名哪家好塔城优化多少钱汕头百度关键词包年推广哪家好丽水seo优化推荐安康seo多少钱武威网络营销推荐山南推广网站推荐怀化网站定制盐田百姓网标王推广推荐歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化