这是我参与「第五届青训营 」伴学笔记创作活动的第5天
一.初识
一、HTTP是什么
HTTP全称为Hyper Text Transfer Protocol,被译为超文本传输协议,是互联网上应用最为广泛的—种网络协议。
HTTP协议是在Web上进行数据交换的基础,是一种“客户端-服务器端”协议。也就是说,请求通常是由像刘览器这样的接受方发起的。一个完整的Web文档通常是由不同的子文档拼接而成的,像是文本、布局描述、图片、视频、脚本等等。
设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
二.协议分析
HTTP方法
GET:请求访问已被URI识别的资源。 POST: 传输实体的主体。 PUT:传输文件。 HEAD:HEAD方法和GET方法一样,只是不返回报文主体部分。用于确认URI的有效性及资源更新的日期和时间等。 DELETE:删除文件。 OPTIONS:查询针对请求URI指定的资源支持的方法。 TRACE:让Web服务器端将之前的请求通信环回给客户端。
HTTP状态码
1XX:信息性状态码,接收的请求正在处理。 2XX:成功状态码,请求正常处理完毕。 3XX:重定向状态码,需要进行附加操作以完成请求。 4XX:客户端错误状态码,服务器无法处理请求。 5XX:服务器错误状态码,服务器处理请求出错。 HTTP常见状态码
200 OK 表示从客户端发来的请求在服务器端被正常处理了。
301 MOVED Permanently 永久重定向,表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。
302 Found 临时重定向,表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问。
304 Not Modified 客户端发送附带条件的请求时,服务端允许请求访问资源,但未满足条件的情况。304状态码返回时,不包含任何响应的主体部分。
400 Bad Request 表示请求报文中存在语法错误,当错误发生时,需修改请求的内容后再次发送请求。
401 Unauthorized 该状态码表示发送的请求需要有通过HTTP认证(BASIC、DIGEST认证)的认证信息。若之前已经进行过一次请求,则表示用户认证失败。
403 Forbidden 表明对请求资源的访问被服务器拒绝了。
404 Not Found 表明服务器上无法找到请求的资源。
500 Internal Server Error 表明服务器端在执行请求时发生了错误,也有可能是Web应用存在的bug或某些临时的故障。
503 Service Unavailable 表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。
HTTP无状态协议:
是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
Cookie和Session技术是用于保持HTTP连接状态的技术。