深入理解HTTP协议

一次完整的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协议原理分析 - 陈立扬 - 博客园

http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码 | 伪技术の宅

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容