Http协议重点
用途
用于客户端与服务端之间的通信,在一条通信线路上必定有一端是客户端,另一端则是服务器端。
Http协议可以明确的区分出哪端是客户端,哪端是服务器端。
通过请求和响应的交换达成通信
Http协议规定,请求从客户端发出,最后服务器端响应请求并返回。
换句话说,Http协议肯定是先从客户端开始建立通信的,服务器端在没有收到请求之前不会发出响应。
Http是无状态(stateless)协议
Http是一种不保存状态,即无状态协议。Http协议自身不对请求和响应之间的通信状态进行保存。
也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。
HTTP 方法
- GET:获取资源,如向服务器获取页面等资源(客户端想访问服务器资源)。向服务器请求资源。服务器将资源解析后返回响应内容。
- POST:客户端告诉服务器信息,并请求访问资源(提交表单)。获取资源
- PUT:传输文件。==REST==:由于PUT方法自身不带验证机制,任何人都可以上传人间,存在安全问题,因此一般的Web网站不使用该方法。故很多公司架构设计采用
REST(REpresentational State Transfer,表征状态转移
. - HEAD:获取报文首部。用于确认URI的有效性及资源更新的日期时间等。
- DELETE:删除文件。因为不带验证机制,所以一般不使用。在==REST==有可能会开放使用。
- OPTIONS:询问支持的方法。查询对请求URI指定的资源支持的方法(GET POST HEAD...)
- CONNECT: 要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。==主要使用SSL和TLS协议把通信内容加密后经网络隧道传输。==
- TRACE:让web服务器端将之前的请求通信环回给客户端的方法。
HTTP状态码
- TIPS:状态码和状况的不一致。不少返回的状态码响应都是错误的,但是用户可能察觉不到这点。比如WEB应用程序内部发生错误,状态码依然返回200OK,这种情况也经常遇到。
- 2XX:成功,请求正常处理完毕
- 200 OK:正常处理,返回资源
- 204 No Content:请求成功,但没有资源返回。请求处理成功,但在返回的响应报文中不含实体的追部分
- 206 Partial Content:返回客户端指定的部分资源
- 3XX:重定向状态码,需要进行附加的操作以完成请求
- 301 Moved Permanently:永久重定向,表示请求的资源已经被分配了新的URI,以后应该使用资源现在所指定的URI
- 302 Found:临时重定向,临时用新的URI请求资源
- 303 See Other:资源的URI已更新,让客服端临时按新的URI访问
- 304 Not Modified:服务端允许请求访问资源,但没有满足条件(客户端发出了附带请求的访问)
- 307 Temporary Redirect:临时重定向
- 4XX:客户端错误(Client Error),服务器无法处理请求
- 400 Bad Request:请求报文存在语法错误。
- 401 Unauthorized:发送的请求需要有通过HTTP认证的认证信息
- ==403 Forbidden==:服务器不允许(拒绝)访问所请求的资源。访问权限出现某些问题、未获得文件系统的访问授权。
- ==404 Not Found==:服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。
- 5XX:服务器错误(Server Error),服务器处理请求出错
- 500 Internal Server Error:服务器端在执行请求时发生了故障。也可能是Web应用存在的bug或某些临时的故障
- ==503 Service Unavailable==:服务器暂时处于超负载或停机维护。
网友评论