一次完整的HTTP请求过程
2. 短连接与长连接
短连接 发送一次请求就断开连接
长连接 一直保持通信
2. 阻塞与非阻塞
阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。
非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。
HTTP报文
请求报文:
POST /use请求报文r HTTP/1.1//请求行
Host: www.user.com
Content-Type: application/x-www-form-urlencoded
Connection: Keep-Alive
User-agent: Mozilla/5.0.//以上是首部行
(此处必须有一空行)
//空行分割header和请求内容 name=world 请求体
响应报文:
HTTP/1.1 304 Not Modified
Date:Sat,15Oct201115:39:29
(空行)
(空响应体)
HTTP报文详解
a、请求行
请求行由请求方法字段、URL字段和HTTP协议版本字段,组成,它们用空格分隔,例如:GET /index.html HTTP/1.1
HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。这里介绍最常用的GET和POST方法;
b、消息头部
请求头部由key/value键值对组成,每行一对,key和value用冒号":"分隔,请求头部通知服务器有关于client端的请求信息,典型的请求头:
User-Agent:产生请求的浏览器类型
Accept:client端可识别的内容类型列表
Host:请求的主机名,允许多个域名同处一个ip地址,即虚拟主机
c、空行
最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器请求头结束。对于一个完整的http请求来说空行是必须的,否则服务器会任务本次请求的数据尚未完全发送到server,处于等待状态
d、请求正文
请求数据不在GET方法中使用,而是在POST中使用。POST方法适用于需要client填写表单的场合,与请求数据相关的最常用的请求头是Content-Type 和Content-Length
Http协议的状态码
1xx(临时响应)
2xx (成功)
3xx (重定向)
301 (永久重定向) http到https永久不变
302 (临时重定向) 用户未登陆跳转到登陆页面
4xx (客户端错误)
400 (错误请求)服务器不理解请求的语法。
401 (未授权)请求要求身份验证。对于登录后请求的网页,服务器可能返回此响应。
403 (禁止)
404(未找到)
5xx (服务器错误)
500(服务器内部错误)服务器遇到错误,无法完成请求。
502(错误网关)服务器作为网关或代理,从上游服务器收到无效响应。
503(服务不可用)服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。
深入理解HTTP协议、HTTP协议原理分析 - 陈立扬 - 博客园
http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码 | 伪技术の宅