HTTP请求-请求行

请求行(方法,URL,版本号)

方法:

描述了这次请求的目的。

常见方法:

GET:从服务器拿一个东西过来(读操作)

POST:往服务器放一个东西去(写操作)

两个典型的使用POST的场景:1.登录        2.上传

从使用习惯上,GET通常没有body,POST通常有body,

GET会把需要给服务器补充的信息放到query string中(url)

POST会把这些信息放到body中,body中可以放任意格式的数据,前后端约定好即可(json是非常常用的格式)

GET与POST的区别

首先,GET与POST本质上没有区别。

        使用POST的场景可以替换成GET,反之亦然 => 取决于代码的写法,尤其是服务器和客户端都是自己实现的场景。但是部分浏览器/服务器某些情况下GET和POST不能完美替换,大部分情况下相互替换问题不大。

        但是GET和POST在使用情况下还是有区别的:

1.GET习惯于把数据放在url的query string中,POST习惯于放在body中。

GET可以把数据放在body中 => 有的浏览器/服务器不支持。

POST也可放在query string中 => 对于绝大多数浏览器/服务器都适用。

2.语义上的区别,标准文档中,GET的语义用来获取数据,POST的语义是用来提交数据。

实际应用中并不一定按照上述要求。

3.关于幂等性,标准文档中,建议GET请求实现成幂等的,POST则无要求。

每次输入的内容一定,输出的结果也一定,称为幂等。

每次输入的内容一定,输出的结果不一定,不是幂等。

如果一个操作本身是幂等的,此时就可以进行缓存了

4.GET请求可以被浏览器收藏,POST不可以。

其他方法:

1.PUT与POST相似,只是具有幂等性,一般用于更新。

2.DELETE删除服务器指定资源

3.OPTIONS返回服务器所支持的请求方法。

4.HEAD类似于GET,只不过响应体不返回,只返回响应头。

5.TRACE回显服务器收到的请求,测试的时候会用到。

6.CONNECT预留,暂无使用。

URL

用于描述一个网络上的资源位置。

一个完整的URL结构:

协议方案名+登录信息(认证)+服务器地址+服务器端口+带有层次的文件地址+查询字符串+片段标识符

登录信息(认证):写在这里不太安全,现在都是通过单独的登录页面来完成身份验证的。

服务器地址+服务器端口:这里的域名也可以是ip地址,后面带有端口号,浏览器就会自动给一个默认的端口。http:80;   https:443.

带有层次的文件地址:这里可能会对应一个真实的硬盘文件,也可能对应一个虚拟的文件。

网络上的资源位置:1)通过ip地址知道服务器在哪       

                                 2)通过端口号知道程序是哪个       

                                 3)通过路径知道是访问哪个资源

查询字符串:是客户端给服务器传递信息的重要途径,按照键值对的方式来组织的。针对请求的内容做的补充说明。

片段标识符:用来标识当前页面的某个部分,通过不同的片段标识可以完成网页内跳转。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值