一、HTTP概述
HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。
设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
HTPP有多个版本,目前广泛使用的是HTTP/1.1版本。
二、HTTP报文
HTTP报文分为请求报文和响应报文
(1)请求报文构成有
1、请求行:包括请求方法、URL、协议/版本
例:GET www.baidu.com HTTP/1.1
2、请求头(Request Header):由键/值对组成,每行一对。
3、空行(标识请求头的结束)
4、请求正文:发送的body数据等(post请求等需要提交的数据)
(2)响应报文构成有
1、状态行:包括协议/版本 状态码 状态信息
例:HTTP/1.1 200 OK
2、响应头(Response Header)
例
3、空行(标识响应头的结束)
4、响应正文:返回的数据
(3)HTTP头部分为通用头,请求头,响应头和实体头。
常见通用头:
- Cache-Control:指定请求和响应遵循的缓存机制,取值有
max-age:客户机可以接收生存期不大于指定时间的响应
public:客户端和代理服务器都可以缓存该资源。
private:只让客户端可以缓存该资源;代理服务器不缓存。
no-cache:跳过设置强缓存,但是不妨碍设置协商缓存;
no-store:不缓存
- data:表示消息发送的时间
- connection:表示链接状态,取值Keep-Alive和close,持久链接与非持久链接(HTTP 1.1默认进行持久连接)
常见请求头:
-
User-Agent:产生请求的浏览器类型。
-
Accept:客户端可识别的内容类型列表,告诉服务器能够发送哪些媒体类型。
-
Accept-Charset:客户端可识别的字符集列表,告诉服务器能够发送哪些字符集
-
Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。
-
Authorization:当客户端接收到来自WEB服务器的 WWW-Authenticate响应时,用该头部来回应自己的身份验证信息给WEB服务器。
- cookie:浏览器保存用户信息的文件
- Referer:先前网页的地址,当前请求网页紧随其后,即来路。
常见响应头:
- Last-modified:请求资源的最后修改时间。
- Location:重定向接收方到非请求URL的位置来完成请求或标识新的资源
- set-cookie:浏览器建立一个cookie保存服务器指定的内容。
三、常见请求方法
1、GET:请求指定的页面信息,并返回实体主体。
2、POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
3、HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
4、PUT:从客户端向服务器传送的数据取代指定的文档的内容。
5、DELETE:请求服务器删除指定的页面。
常见问题:GET和POST区别
- GET用来查询,不会改变或影响服务器上的内容。POST用来提交,把数据放入body中提交服务器,更新服务器内容。
- GET是直接添加到URL后面的,直接就可以在URL中看到内容,而POST是放在报文内部的,用户无法直接看到。
- GET提交的数据长度是有限制的,因为URL长度有限制,具体的长度限制视浏览器而定。而POST没有。
- GET请求浏览器会记录、因此可以后退、收藏、缓存,POST不会
四、常见响应状态码
状态码分类:
- 1XX- 信息型,服务器收到请求,需要请求者继续操作。
- 2XX- 成功型,请求成功收到,理解并处理。
- 3XX - 重定向,需要进一步的操作以完成请求。
- 4XX - 客户端错误,请求包含语法错误或无法完成请求。
- 5XX - 服务器错误,服务器在处理请求的过程中发生了错误。
常见状态码:
- 200 OK - 客户端请求成功
- 301 - 资源(网页等)被永久转移到其它URL
- 302 - 临时跳转
- 400 Bad Request - 客户端请求有语法错误,不能被服务器所理解
- 401 Unauthorized - 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
- 404 - 请求资源不存在,可能是输入了错误的URL
- 500 - 服务器内部发生了不可预期的错误
- 503 Server Unavailable - 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。
更多详情:https://www.jianshu.com/p/a797e6eff804
标签:状态,缓存,HTTP,请求,报文,服务器,客户端 来源: https://www.cnblogs.com/hugebook/p/15093837.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。