HTTP协议基本原理简介(二)
今天给大家主要介绍HTTP协议的基本原理,本文主要内容是HTTP Request和Reponse格式详解。
一、HTTP Request和Reponse格式详解
在HTTP协议中,HTTP客户端向HTTP服务器发起的HTTP请求为Request包,而HTTP服务器向HTTP客户端进行的响应为Reponse包。HTTP客户端在收到HTTP Request包后,会对其中的信息进行处理,并生成Reponse的响应进行反馈。而HTTP客户端在收到HTTP服务器发送的Response包后,也会其中的信息进行解析,如果是使用浏览器,浏览器在对Reponse数据包进行处理后,呈现给用户的就是精美的网页了。不论是HTTP Reponse数据包还是HTTP Request数据包,数据包内部都可以分为请求行、请求头部和请求体三部分。
HTTP Request头格式如下:
HTTP Response头格式如下:
注:在上图中,方框的大小并不代表字段长度,实际上整个HTTP数据是作为TCP协议的负载而存在的,因此采用的是回车换行的方式来作为各个字段的分割,而不是像网络层协议一样,采用固定的长度。
在Linux系统中,我们可以使用curl命令来作为HTTP客户端,与HTTP服务端发起HTTP链接。如果加-v参数,可以很轻易的查看HTTP Request头和Response头的详细信息,效果如下所示:
目前,主流浏览器也提供了HTTP Request和Reponse头的查看功能,在访问页面按F12即可,如果是笔记本电脑,则需要按Fn+F12,效果如下所示:
二、HTTP Request请求方法详解
HTTP协议规定,HTTP Rquest请求一共有8种方法,这些方法都分别应用于不同的场景中。HTTP Request数据包在发送时第一个字段就是要指明使用的方法。
1、GET方法。 向服务器发出请求,获取服务端新数据。
2、POST方法。 向服务器发出请求,获取服务端新数据。POST方法与GET方法的区别在于,GET方法向服务器提交的参数是在URL后面的,而POST方法向服务器提交的参数时是作为HTTP内容存在的。
3、PUT方法。 PUT方法常用于更新数据,可以利用PUT方法向WEB服务器上传数据。
4、DELETE方法。 DELETE方法用于删除URL所标识的URL资源。
5、TRACE方法。 TRACE方法主要用于回显服务器收到的请求,主要用于测试和诊断。
6、CONNECT方法。 CONEECT方法是HTTP1.1新加入的方法,可以以管道的方式连接代理服务器。
7、OPTIONS方法。 OPTIONS方法是返回服务器针对特定资源所支持的HTTP请求方法。
8、HEAD方法。 HEAD方法也是向服务器发出请求,获取服务端数据,但是HEAD方法与GET和POST方法的区别是服务器在进行响应时不会返回详消息体。
以上的8种方法中,GET和POST方法较为常见。
三、HTTP状态码详解
HTTP状态码位于HTTP Reponse数据包的响应头处,是WEB服务器用于表示自身状态的字段。HTTP状态码分类如下所示:
1、100-199。 用于指定客户端应进行的操作。
2、200-299。 表示请求成功。
3、300-399。 表示重定向,客户端所请求的操作已经移动,并且新的位置已经在响应头中给出。
4、400-499。 用于表示客户端访问的错误。
5、500-599。 用于表示服务器自身的错误。
常见的HTTP状态码如下:
HTTP状态码 | 状态码含义 |
---|---|
101 | 表示服务器根据客户端的请求切换到HTTP新的版本协议 |
200 | HTTP请求成功 |
301 | 表示HTTP资源永久移动 |
302 | 表示HTTP资源暂时移动 |
400 | 客户端访问错误,服务端无法解析 |
404 | 服务端并没有客户端请求的资源 |
500 | 服务器内部错误,无法完成请求 |
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
相关文章
- 记1个低级错误:java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:8769/accr/print
- 小程序开发之一(使用fly进行http封装)
- 比ngx_http_substitutions_filter_module 更强大的替换模块sregex的replace-filter-nginx-module
- 网络直播流媒体协议的选择讨论,RTSP,RTMP,HTTP,私有协议?
- 7-1python语法基础-网络编程-HTTP协议
- 【转】在 ASP.NET Core 中使用 IHttpClientFactory 发出 HTTP 请求
- HTTP协议基本原理简介(一)
- [INet] 借助 HTTP Cache 加速应用响应
- 网络编程之深入浅出,全面理解HTTP协议
- Http协议详解
- HTTP协议状态码详解(HTTP Status Code)
- Atitit 文件远程传输读写协议 scp http ftp nfs webdav smb D:Program FilesGitusrbinscp.exe 4.密码安全策略不完善 在
- HTTP 协议详解
- Python学习99:HTTP协议简介
- java.net.ConnectException: Call From slaver1/192.168.19.128 to slaver1:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org
- 通过HTTP协议实现多线程下载
- HTTP和TCP协议的队头阻塞
- Java开发工程师系列讲解之——『http协议篇』
- 如何发起一次完整的HTTP的请求流程
- HTTP协议状态码大全 | 汇总HTTP所有状态码
- 区块链将成为互联网基础协议,类似于TCP/IP、HTTP
- HTTP 和 SOCKET 的区别
- Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】
- 【慧河网络安全组】Web基础和http协议培训题解
- 接口自动化测试必备技能——HTTP协议(九)