login什么意思

更新时间:2022-11-27 14:03:15 阅读: 评论:0


2022年11月27日发(作者:lishi)

HTTP协议,Http常⽤状态码

HTTP协议-Request

HTTP报⽂是⾯向⽂本的,报⽂中的每⼀个字段都是⼀些ASCII码串,各个字段的长度是不确定的。HTTP有两类报⽂:请求报⽂和响应报⽂。

1.1HTTP请求报⽂

-⼀个HTTP请求报⽂由请求⾏(requestline)、请求头部(header)、空⾏和请求数据4个部分组成![](/blog/1226829/201810/1226829-

)

<request-line>

<headers>

<blankline>

[<request-body>

1.1.2求情头-RequestHeader

-第⼀⾏:三个字段,中间⽤空格隔开请求⽅法URLHTTP版本如:GET/TP/1.1。常⽤的请求⽅法:HTTP协议的请求⽅法有GET、POST、HEAD、PUT、

DELETE、OPTIONS、TRACE、CONNECT。

1.1.3GET⽅法

GET⽅法要求服务器将URL定位的资源放在响应报⽂的数据部分,回送给客户端。意思是:GET⽅法会把请求数据附在URL后⾯⼀并提交到后台URL与请求数据之间⽤?问

号分割,(?)之后表⽰URL结束,请求数据开始,多个请求数据之间使⽤&and符号连接

如下图:我省略了关键信息的请求头

GET/s?wd=博客园%20c_G-17&rsv_spt=1&...省略部分请求数据...HTTP/1.1

Host:

Connection:keep-alive

Cache-Control:max-age=0

Upgrade-Incure-Requests:1

Ur-Agent:Mozilla/5.0(WindowsNT6.3;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/55.0.2883.75Safari/537.36

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Referer:/

Accept-Encoding:gzip,deflate,sdch,br

Accept-Language:zh-CN,zh;q=0.8

Cookie:xxxxx;

BDUSS=xxxx

可以看到,GET⽅式的请求⼀般不包含”请求内容”部分,请求数据以地址的形式表现在请求⾏。

地址中”?”之后的部分就是通过GET发送的请求数据,我们可以在地址栏中清楚的看到,各个数据之间⽤”&”符号隔开。显然,这种⽅式不适合传送私密数据。另外,由于不同的

浏览器对地址的字符限制也有所不同,⼀般最多只能识别1024个字符,所以如果需要传送⼤量数据的时候,也不适合使⽤GET⽅式。

1.1.4POST⽅法

POST⽅法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输⼤量数据,这样POST⽅式对传送的数据⼤⼩没有限制,⽽且也不会显⽰在URL中

以登录百度为例:发送POST请求->数据不会跟在URL后⾯,⽽是在Body请求内容⾥

下⾯为请求:请求内容Form表单中有很多内容,太长了,我就省略了,留下了部分关键的

请求内容与请求头之间⽤空⾏隔开如下

POST/v2/api/?loginHTTP/1.1

Host:

Connection:keep-alive

Content-Length:1415

Cache-Control:max-age=0

Origin:

Upgrade-Incure-Requests:1

Ur-Agent:Mozilla/5.0(WindowsNT6.3;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/55.0.2883.75Safari/537.36

Content-Type:application/x-www-form-urlencoded

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Referer:/

Accept-Encoding:gzip,deflate,br

Accept-Language:zh-CN,zh;q=0.8

Cookie:xxxx

staticpage=/&chart=UTF-8&token=省略&tpl=省略&apiver=省略&tt=省略&isPhone=fal&detect=1&gid=不给看&logintype=dialogLogin&logLoginType=pc_loginDialog&urname=这⼉是我的⽤户名&password=这

可以看到,POST⽅式请求⾏中不包含数据字符串,这些数据保存在”请求内容”部分,各数据之间也是使⽤”&”符号隔开。POST⽅式⼤多⽤于页⾯的表单中。因为POST也能完成

GET的功能,因此多数⼈在设计表单的时候⼀律都使⽤POST⽅式,其实这是⼀个误区。GET⽅式也有⾃⼰的特点和优势,我们应该根据不同的情况来选择是使⽤GET还是使⽤

POST。

1.2POST中内容解释

-以下为POST中的内容解释:从上⽽下顺序排列2.请求头3.空⾏4.请求数据

1.2.1HEAD

HEAD就像GET,只不过服务端接受到HEAD请求后只返回响应头,⽽不会发送响应内容。当我们只需要查看某个页⾯的状态的时候,使⽤HEAD是⾮常⾼效的,因为在传输的

过程中省去了页⾯内容。

1.2.2请求头

-请求头部由关键字/值对组成,每⾏⼀对,关键字和值⽤英⽂冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:

-Agent:产⽣请求的浏览器类型。

:客户端可识别的内容类型列表。

:请求的主机名,允许多个域名同处⼀个IP地址,即虚拟主机。

1.2.3空⾏

最后⼀个请求头之后是⼀个空⾏,发送回车符和换⾏符,通知服务器以下不再有请求头。

1.2.4请求数据

请求数据不在GET⽅法中使⽤,⽽是在POST⽅法中使⽤。POST⽅法适⽤于需要客户填写表单的场合。与请求数据相关的最常使⽤的请求头是Content-Type和Content-

Length。

1.3HTTP请求报⽂

HTTP响应也由三个部分组成,分别是:状态⾏、消息报头、响应正⽂。

如下所⽰,HTTP响应的格式与请求的格式⼗分类似:

<status-line>

<headers>

<blankline>

[<respon-body>]

列如:刚才登录百度给我返回的HTTP报⽂如下

HTTP/1.1200OK

Access-Control-Expo-Headers:Trace-ID

Cache-Control:public

Connection:keep-alive

Content-Encoding:gzip

Content-Type:text/html

Date:Mon,08Oct201810:41:47GMT

Expires:0

Last-Modified:Mon,08Oct201810:41:4610OctGMT

P3p:省略

Pragma:public

Server:Apache

Strict-Transport-Security:max-age=31536000

Trace-Id:C6633601

Tracecode:省略

Tracecode:省略

Vary:Accept-Encoding

Transfer-Encoding:chunked

1.4HTTP请求GET和POST的区别

提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头<request-line>中),以?分割URL和传输数据,多个参数⽤&连接;例如:?

name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英⽂字母/数字,原样发送,如果是空格,转换为+,如果是中⽂/其他字符,则直接

把字符串⽤BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表⽰的ASCII。

POST提交:把提交的数据放置在是HTTP包的包体<request-body>中。上⾯我登录百度的事例,请求体就是实际的传输部分数据(嫌烦我省略了部分,还剩部分)

因此,GET提交的数据会在地址栏中显⽰出来,⽽POST提交,地址栏不会改变

2.传输数据的⼤⼩:

⾸先声明,HTTP协议没有对传输的数据⼤⼩进⾏限制,HTTP协议规范也没有对URL长度进⾏限制。⽽在实际开发中存在的限制主要有:

GET:特定浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取

决于操作系统的⽀持。

因此对于GET提交时,传输数据就会受到URL长度的限制。

POST:由于不是通过URL传值,理论上数据不受限。但实际各个WEB服务器会规定对post提交数据⼤⼩进⾏限制,Apache、IIS6都有各⾃的配置。

3.安全性:

POST的安全性要⽐GET的安全性⾼。注意:这⾥所说的安全性和上⾯GET提到的“安全”不是同个概念。上⾯“安全”的含义仅仅是不作数据修改,⽽这⾥安全的含义是真正

的Security的含义,⽐如:通过GET提交数据,⽤户名和密码将明⽂出现在URL上,因为(1)登录页⾯有可能被浏览器缓存,(2)其他⼈查看浏览器的历史纪录,那么别⼈就

可以拿到你的账号和密码了,

HTTP常⽤状态码

楼主参考的Djangorestful规范

1.1xx:系列表⽰请求已接收,继续处理

100

2.2xx:成功--表⽰请求已被成功接收、理解、接受

200ok表⽰请求成功返回⽹页

201CREATED-[POST/PUT/PATCH]:⽤户新建或修改数据成功。

202Accepted-[*]:表⽰⼀个请求已经进⼊后台排队(异步任务)

204NOCONTENT-[DELETE]:⽤户删除数据成功

3.3xx:表⽰重定向,要完成请求必须进⾏更进⼀步的操作

301永久跳转

302临时跳转,请求的⽹页已临时跳转到新位置。

4.4xx:客户端错误--请求有语法错误或请求⽆法实现

400INVALIDREQUEST-[POST/PUT/PATCH]:⽤户发出的请求有错误,服务器没有进⾏新建或修改数据的操作,该操作是幂等的

401BadRequest表⽰⽤户没有权限(令牌、⽤户名、密码错误)。这个状态代码必须和WWW-Authenticate报头域⼀起使⽤。配合⾝份验证

403Forbiddent表⽰⽤户得到授权(与401错误相对),但是访问是被禁⽌的,服务器收到请求但是拒绝提供服务

404NotFound

406NotAcceptable-[GET]:⽤户请求的格式不可得(⽐如⽤户请求JSON格式,但是只有XML格式)。

410Gone-[GET]:⽤户请求的资源被永久删除,且不会再得到的。

422Unprocesableentity-[POST/PUT/PATCH]当创建⼀个对象时,发⽣⼀个验证错误。

5.5xx:服务器端错误--服务器未能实现合法的请求

500-InternalServerError(内部服务器错误)

502-BadGateway(坏的⽹关),⼀般是⽹关服务器请求后端服务时,后端服务没有按照http协议正确返回结果。

503-ServiceUnavailable(服务当前不可⽤),可能因为超载或停机维护。

504-GatewayTimeout(⽹关超时),⼀般是⽹关服务器请求后端服务时,后端服务没有在特定的时间内完成服务。

本文发布于:2022-11-27 14:03:15,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/31424.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:leggings
下一篇:horde
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图