http学习随笔

1、http的状态码

HTTP状态码表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常或者是出现的错误,能够根据返回的状态码判断请求是否得到正确的处理很重要。

状态码由3位数字和原因短语组成,例如下图所示:

数字中的第一位指定了响应类别,后两位无分类,响应类别有一下5种:

1

各类别常见状态码:

2xx (3种)

200 OK:

表示从客户端发送给服务器的请求被正常处理并返回;

204 No Content:

表示客户端发送给客户端的请求得到了成功处理,但在返回的响应报文中不含实体的主体部分(没有资源可以返回);

206 Patial Content:

表示客户端进行了范围请求,并且服务器成功执行了这部分的GET请求,响应报文中包含由Content-Range指定范围的实体内容。

3xx (5种)

3xx (5种)

301 Moved Permanently:

永久性重定向,表示请求的资源被分配了新的URL,之后应使用更改的URL;

302 Found:

临时性重定向,表示请求的资源被分配了新的URL,希望本次访问使用新的URL;

301与302的区别:

前者是永久移动,后者是临时移动(之后可能还会更改URL)

303 See Other:

表示请求的资源被分配了新的URL,应使用GET方法定向获取请求的资源;

302与303的区别:

后者明确表示客户端应当采用GET方式获取资源

304 Not Modified:

表示客户端发送附带条件(是指采用GET方法的请求报文中包含if-Match、If-Modified-Since、If-None-Match、If-Range、If-Unmodified-Since中任一首部)的请求时,服务器端允许访问资源,但是请求为满足条件的情况下返回改状态码;

307 Temporary Redirect:

临时重定向,与303有着相同的含义,307会遵照浏览器标准不会从POST变成GET;(不同浏览器可能会出现不同的情况)

4xx (4种)

400 Bad Request:

表示请求报文中存在语法错误;

401 Unauthorized:

未经许可,需要通过HTTP认证;

403 Forbidden:

服务器拒绝该次访问(访问权限出现问题)

404 Not Found:

表示服务器上无法找到请求的资源,除此之外,也可以在服务器拒绝请求但不想给拒绝原因时使用;

5xx (2种)

500 Inter Server Error:

表示服务器在执行请求时发生了错误,也有可能是web应用存在的bug或某些临时的错误时;

503 Server Unavailable:

表示服务器暂时处于超负载或正在进行停机维护,无法处理请求;

2、http缓存

总结

3、get和post的区别

基本区别

GET在浏览器回退时是无害的,而POST会再次提交请求。

GET产生的URL地址可以被Bookmark,而POST不可以。

GET请求会被浏览器主动cache,而POST不会,除非手动设置。

GET请求只能进行url编码,而POST支持多种编码方式。

GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

GET请求在URL中传送的参数是有长度限制的,而POST么有。

对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

GET参数通过URL传递,POST放在Request body中。

本质上都是tcp/ip协议,只是定义的规则不一样

GET和POST还有一个重大区别,简单的说:

GET产生一个TCP数据包;POST产生两个TCP数据包。

长的说:

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

大神解说

4、cooki、session

cookie

session

5、HTTP的几种请求方式和用途

GET方法

发送一个请求来取得服务器上的某一资源

POST方法

向URL指定的资源提交数据或附加新的数据

PUT方法

跟POST方法很像,也是想服务器提交数据。但是,它们之间有不同。PUT指定了资源在服务器上的位置,而POST没有

HEAD方法

只请求页面的首部

DELETE方法

删除服务器上的某资源

OPTIONS方法

它用于获取当前URL所支持的方法。如果请求成功,会有一个Allow的头包含类似“GET,POST”这样的信息

TRACE方法

TRACE方法被用于激发一个远程的,应用层的请求消息回路

CONNECT方法

把请求连接转换到透明的TCP/IP通道

6、http和https的区别

区别

7、http如何发送和接受请求的,以及代码实现

八种请求方法

现写这么多,以后遇到再补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值