概念
HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。
HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。
工作方式
- HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。(谷歌/火狐-百度服务器)
- Web服务器根据接收到的请求后,向客户端发送响应信息。
- HTTP默认端口号为80。
特点
- HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。
- HTTP是媒体独立的:只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
- HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
URL
URL (Uniform Resource Identifier)正是使用 Web 浏览器等访问 Web 页面时需要输入的网页地址
URI
统一资源标识符(Uniform Resource Identifiers, URI)
URI:通过HTTP协议可以访问到的所有资源的链接,(范围更广,不仅仅是网页),URI包含了URL
HTTP原理
浏览器地址栏里输入的请求都是get请求
HTTP请求
HTTP响应
HTTP方法
HTTP状态码
HTTP 状态码负责表示客户端 HTTP 请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。
- 200 OK:表示从客户端发来的请求在服务器端被正常处理了。在响应报文内,随状态码一起返回的信息会因方法的不同而发生改变。比如,使用 GET 方法时,对应请求资源的实体会作为响应返回。
- 301 Moved Permanently:永久性重定向。该状态码表示请求的资源已被分配了新的 URI,以后应使用资源现在所指的 URI。
- 302 Found:临时性重定向。该状态码表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问。和 301状态码相似,但 302 状态码代表的资源不是被永久移动,只是临时性质的。
- 403 Forbidden:该状态码表明对请求资源的访问被服务器拒绝了。服务器端没有必要给出拒绝的详细理由,但如果想作说明的话,可以在实体的主体部分对原因进行描述,这样就能让用户看到了。
- 404 Not Found:该状态码表明服务器上无法找到请求的资源。
- 500 Internal Server Error:该状态码表明服务器端在执行请求时发生了错误。也有可能是 Web应用存在的bug或某些临时的故障。
- 503 Service Unavailable:该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。如果事先得知解除以上状况需要的时间,最好写入RetryAfter 首部字段再返回给客户端。