主要特点
1)支持客户端/服务器模式。客户端向服务器请求服务时,只需传送请求方法和路径,常见的请求方法有GET,POST。
2)简单。
3)灵活。HTTP允许传输任意类型的数据对象,正在传输的类型由ContentType加以标记。
4)无连接。限制每次连接,使其只处理一个请求。服务器处理完客户端的请求,并受到客户端的应答后,即断开连接。
5)无状态。HTTP是无状态协议,意味着如果后续处理需要前面的信息,则必须重新上传。
HTTP请求
包括4个部分,分别是统一资源定位符,方法,头和体。
统一资源定位符(Uniform Resource Locator,URL)是用于完整地描述互联网上网页和其他资源地址的一种标识方法
URL的一般形式为“<协议>://<主机>:<端口>/<路径>/<文件名>”。
如https://www.baidu.com/
请求方法:HTTP定义了与服务器交互的不同方法(Method),基本方法有4种,分别是GET、POST、PUT和DELETE
请求报文:由请求行、头、空行和请求数据4个部分组成
HTTP响应报文
将HTTP请求发送到服务器后,服务器会给出相应的应答,服务器返回的应答消息称为HTTP响应。
HTTP响应报文由3个部分组成,分别是状态行、消息报头和响应正文
状态行格式为HTTP-Version Status-Code Reason-Phrase CRLF
HTTPVersion表示服务器HTTP的版本;Status-Code表示服务器返回的响应状态代码;Reason-Phrase表示状态代码的文本描述;CRLF表示一个回车符和一个换行符
状态代码由3位数字组成,第一个数字定义了响应的类别,它有如下5种取值可能。
1××:指示信息,表示请求已接收,继续处理。
2××:成功,表示请求已被成功接收、理解和接受。
3××:重定向,要完成请求必须进行更进一步的操作。
4××:客户端错误,请求有语法错误或请求无法实现。
5××:服务器错误,服务器未能实现合法的请求。
以下对常见状态代码和状态描述进行说明。
200 OK:客户端请求成功。
400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
401 Unauthorized:请求未经授权。
403 Forbidden:服务器收到请求,但是拒绝提供服务。
404 Not Found:请求资源不存在,如输入了错误的URL。
500 Internal Server Error:服务器发生不可预期的错误。
503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。