HTTP协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议
HTTP发展
- HTTP 1.0 RFC-1945
- HTTP 1.1 RFC-2616 持续请求
- HTTP 2.0 RFC-7540 加密、头部压缩、服务器推送、管线操作、多路复用
- HTTPS RFC-2818 安全协议
HTTP工作原理
HTTP是基于客户/服务器模式,且面向连接的。典型的HTTP事务处理有如下的过程:
(1)客户与服务器建立连接;
(2)客户向服务器提出请求;
(3)服务器接受请求,并根据请求返回相应的文件作为应答;
(4)客户与服务器关闭连接。
状态码:
- 1xx消息——请求已被服务器接收,继续处理
- 2xx成功——请求已成功被服务器接收、理解、并接受
- 3xx重定向——需要后续操作才能完成这一请求
- 4xx请求错误——请求含有词法错误或者无法被执行
- 5xx服务器错误——服务器在处理某个正确请求时发生错误
请求方式
- GET 获取
数据放在url里面传输
容量小于32k - POST 发送数据
容量大
网址组成
1、协议 http, https(https 是加密的 http)
2、主机 g.cn zhihu.com之类的网址
3、端口 HTTP 协议默认是 80,因此一般不用填写
4、路径 下面的「/」和「/question/31838184」都是路径
协议
- 一个传输协议,协议就是双方都遵守的规范。
- 1、浏览器(客户端)按照规定的格式发送文本数据(请求)到服务器
- 2、服务器解析请求,按照规定的格式返回文本数据到浏览器
- 3、浏览器解析得到的数据,并做相应处理
- 请求和返回是一样的数据格式,分为4部分:
- 1,请求行或者响应行
- 2,Header(请求的 Header 中 Host 字段是必须的,其他都是可选)
- 3,\r\n\r\n(连续两个换行回车符,用来分隔Header和Body)
- 4,Body(可选)3、浏览器解析得到的数据,并做相应处理
-
请求的格式,注意大小写(这是一个不包含Body的请求):
-
原始数据如下
'GET / HTTP/1.1\r\nhost:g.cn\r\n\r\n'
-
打印出来如下
GET / HTTP/1.1
Host: g.cn
-
其中
1, GET 是请求方法(还有POST等,这就是个标志字符串而已) 2,/ 是请求的路径(这代表根路径) 3,HTTP/1.1 中,1.1是版本号,通用了20年 具体字符串是 'GET / HTTP/1.1\r\nhost:g.cn\r\n\r\n' 返回的数据如下: HTTP/1.1 301 Moved Permanently Alternate-Protocol: 80:quic,p=0,80:quic,p=0 Cache-Control: private, max-age=2592000 Content-Length: 218 Content-Type: text/html; charset=UTF-8 Date: Tue, 07 Jul 2015 02:57:59 GMT Expires: Tue, 07 Jul 2015 02:57:59 GMT Location: http://www.google.cn/ Server: gws X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block
-
其中响应行(第一行):
1,HTTP/1.1 是版本 2,301 是「状态码」,参见文末链接 3,Moved Permanently 是状态码的描述 浏览器会自己解析Header部分,然后将Body显示成网页
网友评论