计算机网络中应用层之HTTP协议

HTTP协议是超文本传输协议,是一个应用层的协议,是客户端和服务器端之间进行通信的一个协议, 一种典型的“请求-响应”式工作模式,即:客户端发起请求,服务器端回送响应。

HTTP协议工作流程:

1.首先客户端与服务器端需要加建立连接(常用的是建立TCP连接,还有“三次握手”的内容在后面介绍)。只要单机超链接,HTTP便开始工作。

2.建立连接后,客户端发送一个请求给服务器。 (请求的报文格式在后面介绍)。

3.服务器接收到请求后,给予相应的响应信息。(响应的报文格式在后面介绍)。

4.客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户端和服务器端断开连接。

这里写图片描述

HTTP报文格式:

1>HTTP的请求报文格式:

打开 chrome浏览器,进入开发者模式,输入一个新浪网站的地址,打开Network,找到Request Headers,点开view source,就可以查看到浏览器发给新浪服务器的请求:
这里写图片描述

总结HTTP请求的报文格式:
这里写图片描述

下面,给出一个真正的HTTP请求报文,如下:

GET /xxx/page.html HTTP/1.1        方法字段可以取值GET、POST,GET仅请求资源,POST会附带用户数据
Host: www.xxx.com                  区分浏览器请求的哪个网站
Connection: close                  服务器发送完被请求的对象之后关闭链接
User-agent:Mozilla/4.0
Accept-language: fr

2>HTTP的响应报文格式:
在Network中继续往下找到Response Headers,点击view source,显示服务器返回的原始响应数据:

这里写图片描述

总结HTTP响应的报文格式:

这里写图片描述

下面,给出一个真正的HTTP请求报文,如下:

HTTP/1.1 200 OK         200表示一个成功的响应,OK是说明
Connection: close       服务器发送完被请求的对象之后关闭链接  
Data: Thu, 03, Jul, 2013 00:00:00 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Sun, 6, May 2007 09:23:24 GMT
Content-Type: text/html     表示HTML网页;浏览器就是依靠Content-Type来判断响应的内容是网页还是图片,是视频还是音乐。浏览器并不靠URL来判断响应的内容,所以,即使URL是http://example.com/abc.jpg,它也不一定就是图片。

(data ... data ...)

常见的响应状态码:
200 表示一个成功的响应

404 Not Found:网页不存在

500 Internal Server Error:服务器内部出错

TCP链接和“三次握手”

在此简单说一下,后面的博客会详细介绍:

HTTP是基于传输层的TCP协议,而TCP是一个端到端的面向连接的协议。所谓的端到端可以理解为进程到进程之间的通信。所以HTTP在开始传输之前,首先需要建立TCP连接,而TCP连接的过程需要所谓的“三次握手”。下图所示TCP连接的三次握手。
在TCP三次握手之后,建立了TCP连接,此时HTTP就可以进行传输了。一个重要的概念是面向连接,既HTTP在传输完成之间并不断开TCP连接。在HTTP1.1中(通过Connection头设置)这是默认行为。

这里写图片描述

备注:

未来是HTTP2.0的时代,从今年6月份起苹果公司要求开发者提交到APP store的产品必须兼容面向硬件识别和网络路由的最新互联网协议IPV6-only,就是基于对HTTP2.0的支持,这样会有更快更安全的进行网络传输。 苹果弃用NSURLConnection,转向支持最新的NSURLSession,在今后的代码中最好是用NSURLSession,因为它兼容IPV6-only,在最新的AFNetworking中也停止了对NSURLConnection的封装,只封装使用NSURLSession。但是经过检测在iOS9系统上NSURLConnection仍然还是兼容IPV6-only,但是趋势终究还是NSURLSession。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值