HTTP请求&状态码
http协议报文
-
请求报文(请求行,请求头,请求数据,空行)
-
请求行:
-
请求方法字段,URL字段,HTTP版本协议。
例如:GET/http://192.168…/ HTTP/1.1
常见的请求方法:GET,POST,HEAD,PUT,CONMNECT
-
-
请求头:
-
User-Agent:产生请求的浏览器类型。
Accept:客户端可识别的内容类型列表。
Host:主机地址
-
-
**请求体:**里面主要是请求数据
- POST方法中,会把数据以key-value的形式发送请求
-
空行:
- 发送回车符和换行符,通知服务器一下不再有请求头。
-
-
响应报文(状态行,消息报头,响应正文)
- 状态行
- 消息报头
- 响应正文
接下来详细说一说。(背吧,别犹豫)
- 2XX 成功
- 200 ok (请求成功!)
- 202 Accepted(表示服务器已经接受了请求,但是还没有处理,而且这个请求最终会不会处理还不确定)
- 204 no content (请求成功,但是没返回结果)
- 206 partial content (客户端请求一部分资源,服务端成功响应,返回一定范围资源)
- 3XX 重定向
- 301 move permanently (永久性重定向)
- 302 found (临时性重定向)请求资源的URL被暂时修改到Location提供的URL。未来可能还会有新的修改。
- 303 see other (由于请求对应的资源存在另一个URL,应使用GET方法定向获取请求的资源)
- 304 not modified (表示在客户端采用带条件的访问某资源时,服务端找到了资源,但是这个请求的条件不符合。跟重定向无关)
- 307 temporary redirect(和302一个意思)
- 4XX 客户端错误
- 400 bad request(请求报文存在语法错误)
- 401 unauthorized(需要认证(第一回返回)或者 认证失败(第二回返回))
- 403 forbidden (请求被服务器拒绝了)服务器拒绝响应。权限不足。
- 404 not found (服务器未找到请求的资源)
- 5XX 服务端错误
- 500 internal server error(服务端执行请求时发生了错误)
- 502 Bad Gateway(服务器作为网关使用时,收到上游服务器返回的无效响应。)
- 503 service unavailable(服务器正在超负荷或停机维护,无法处理请求)
- 504 Gateway Timeout(网关超时。服务器作为网关或者代理,不能及时从上游服务器获取响应返回给客户端。)
- 505 Http Version Not Supported( 发出的请求http版本服务器不支持。如果请求通过http2发送,服务器不支持http2.0,就会返回该状态码。)
常见的字符集编码有哪些?
ASCII码,UTF8,GBK,Unicode,GB2312,GB13080
ASCII码:使用7 位二进制数(剩下的1位二进制为0)来表示所有的数字,字母,符号。但不支持中文,所以GBK出来了
GBK:主要用于中文编码,包含全部中文,用两个字节表示一个字符。
Unicode:支持所有语言,它用2个字节表示一个字符。显然这种对于全英文的文本编码就不太划算,于是“可变长编码"UTF-8出来了。
UTF8:支持所有语言,把Unicode字符根据不同大小编码成1-6个字节,英文通常是1个字节,汉字通常是3个字节。显然UTF8比较灵活,可以节省空间。