HTTP专栏

1.基本概念

1.1报文格式

客户端发送一个请求报文给服务端,服务器根据请求报文中的信息进行处理,并将处理结果放入响应报文中并返回给客户端。

1.1.1请求报文

1.第一行包含了请求方法,URL,协议版本。
2.接下来的多行都是请求首部Header,每个首部都有一个首部名称,以及对应的值。
3.一个空行用来分隔首部和内容主体Body。
4.最后是请求的内容主体。

1.1.2响应报文

1.第一行包含协议版本、状态码以及描述、最常见的是 200 OK 表示请求成功了。
2.接下来多行也是首部内容。
3.一个空行分隔首部和内容主体。
4.最后是响应的内容主体。

1. 2URL

HTTP使用URL(统一资源定位符)来定位资源,他是URL的子集,URL在URI(统一资源标识符)的基础上增加了定位能力。URI除了包含URL,还包含URN(统一资源名称),它只是用来定义一个资源的名称,并不具备定位该资源的能力。

2.HTTP方法

客户端发送的请求报文第一行为请求行
,包含了方法字段。

2.1GET

获取资源
当前网络请求中,绝大部分使用的是GET方法。

2.2HEAD

获取报文首部
和GET方法类似,但是不返回报文实体主体部分。主要用于确认URL的有效性以及资源更新的日期时间等。

2.3POST

传输实体主体
POST主要用来传输数据,而GET主要用来获取资源。

2.4PUT

上传文件
由于自身不带验证机制,任何人都可以上传文件,因此存在安全性问题,一般不使用该方法。

2.5PATCH

对资源进行部分修改
PUT也可以用于修改资源,但是只能完全代替原始资源,PATCH允许部分修改。

2.6DELETE

删除文件
与PUT功能相反,并且同样不带验证机制。

2.7CONNECT

要求在与代理服务器通信时建立隧道。
使用SSL(安全套接层)和TLS(传输层安全)协议把通信内容加密后经网络隧道传输。

2.8OPTIONS

查询支持的方法
查询指定的URL能够支持的方法。
会返回 Allow:GET\POST\HEAD\OPTIONS这样的内容。

2.9TRACE

追踪路径
服务器会将通信路径返回给客户端。发送请求时,在Max-Forwards首部字段中填入数值,每经过一个服务器就会减1,当数值为0时就停止传输 。
通常不会使用TRACE,并且他容易受到XST攻击。

3.HTTP状态码

服务器返回的响应报文中第一行为状态行,包含了状态码以及原因短语,用来告知客户端请求的结果。

3.1 1XX信息

100 continue:表示到目前为止都很正常,客户端可以继续发送请求或者忽略这个响应。

3.2 2XX成功

1.200 OK
2.204 NoContent:请求已经处理成功,但是返回的响应报文不包含实体的主体部分。一般在只需要从客户端往服务端发送信息,而不需要返回数据时使用。
3.206 Partial Content:表示客户端进行了范围请求,响应报文包含由Content-Range指定范围的实体内容。

3.3 3XX重定向

1.301 Moved Permanently:永久性重定向
2.302 Found:临时性重定向
3.303 See Other :和302有着相同的功能,但是303明确要求客户端应该采用GET方法获取资源。
4.304 Not Modified:如果请求报文首部包含一些条件,例如:If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since,如果不满足条件,则服务器返回304状态码。
5.307 Temporary Redirect:临时重定向,与302的含义类似,但是307要求浏览器不会把重定向请求的POST方法改成GET方法。

3.4 4XX客户端错误

1.400 Bad Request:请求报文中存在语法错误。
2.401 Unauthorized:该状态码表示发送的请求需要有认证信息(BASIC 认证、DIGEST 认证)。如果之前已进行过一次请求,则表示用户认证失败。
3.403 Forbidden:请求被拒绝。
4.404 Not Found

3.5 5XX服务器错误

1.500 Internal Server Error:服务器正在执行请求时发生错误。
2.503 Service Unavailable:服务器暂时处于超负载或正在运行停机维护,现在无法处理请求。

4.HTTP首部

由4种类型的首部字段:通用首部字段,请求首部字段,响应首部字段和实体首部字段。

本文章参考力扣校招基础知识详解,里面还有更多丰富的内容~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值