http协议要细分的话可以写成几本书,本文只简单了解1.什么是http协议?2.分析一次http协议的应用过程;
1.什么是http协议?分层次理解http协议的概念
字面理解就是一种规范,一种规则,是万维网服务器传输超文本协议到本地浏览器客户端的一种规范 ,是二者约定的一种规则;http协议:HyperText Transfer Protocol超文本传输协议;其中涉及到的概念包括URL,请求消息,响应消息;
(1)URL : UniformResourceLocator, 中文叫统一资源定位符,是互联网上用来标识某一处资源的地址
![](https://img.haomeiwen.com/i7901113/f6e7f95edcbd44a2.png)
(2)请求消息 :请求消息包括请求行,请求头,请求体
(2.1)请求行包括:请求方式: GET或POST ;网页路径url: 不含域名部分的网页地址,比如:/abc/page1.php?s1=1&s2=xyz;协议版本号: http/1.1
![](https://img.haomeiwen.com/i7901113/a8f6b231c7bcd5d0.png)
(2.1.1)请求状态大概内容:
状态码大概有以下几种规格:
1xx:提示信息,表示请求已接受,继续处理
2xx:成功,表示请求已经成功接受 200:客户端请求成功
3xx:重定向 304:重定向
4xx:客户端错误 :400:bad request,请求有语法错误
5xx:服务器端错误 :500 服务器端错误
(2.1.2)请求方法
GET: 请求指定的页面信息,并返回实体主体。
HEAD :类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST :向指定资源提交数据进行处理请求(例如提交表单或者上传文件)
PUT :从客户端向服务器传送的数据取代指定的文档的内容。
DELETE :请求服务器删除指定的页面
CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
OPTIONS: 允许客户端查看服务器的性能。
TRACE:回显服务器收到的请求,主要用于测试或诊断。
(2.2)请求头:大概字段意思
![](https://img.haomeiwen.com/i7901113/22fdc91f83c469b5.png)
如图大概这些字段的意思:
Host:所请求的主机名:www.jianshu.com
Accept:浏览器可以接受的内容类型 text/html application/json等
Accept-encoding:浏览器可以接受的内容压缩方式
Keep-Alive:tcp链接的保持时间
User-Agent:请求的代理端信息 :firefox ,ie
Connection:链接类型
等等记那么太多也没意思
(2.3)请求体:请求时发送的数据,服务器需要接受的数据
![](https://img.haomeiwen.com/i7901113/175effdea6848296.png)
(3)响应消息:响应消息和请求消息大概类似:由状态行,消息头,空行(在浏览器上未能体现出来),响应正文;
(3.1)响应头:如下
![](https://img.haomeiwen.com/i7901113/00bfb1a7acef3244.png)
其中,Content-Type:指定了MIME类型的HTML(text/html),编码类型;
(3.2)响应正文:
![](https://img.haomeiwen.com/i7901113/5d37e976bbb782a9.png)
2.分析一次http协议的应用过程;
在浏览器键入url例如:http://www.jianshu.com/writer 按下回车,发生以下流程:
(1)浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;(URL)
(2)解析出 IP 地址后,根据该 IP 地址和默认端口 ,和服务器建立TCP连接;
(3)浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;(请求消息)
(4)服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;(响应消息)
(5)释放TCP连接
(6)浏览器渲染界面,显示响应内容
本文参考博客:http://www.cnblogs.com/ranyonsue/p/5984001.html
网友评论