您的位置:首页 > 理论基础 > 计算机网络

Http协议下的浏览器与服务器的交互

2015-11-28 21:12 531 查看
http是超文本传输协议的缩写,顾名思义,它是浏览器有服务器传输超文本时所要遵守的一套协议。通俗的讲,http协议是基于应用层的通信规范。所以,了解http协议对于web开发是尤为重要的。

一. 关于http的几个概念:

1. 连接: 浏览器与服务器之间传输超文本的通道。通常,浏览器在请求之前需要与服务器连接,保持通信通道打开,才可以进行后面一系列的请求等操作,服务器会开通连接,并对发送请求的浏览器进行监听,以便接受到浏览器发送过来的请求。

2. 请求: 浏览器对服务器发送的一系列消息,希望可以在服务器端获取到自己想要的数据。而这些消息就是浏览器对服务器发出的请求,一般包括请求的类型,请求的数据,请求的浏览器信息等。

3. 响应: 服务器在接到浏览器发出的请求后,会对这些请求做出处理,并向浏览器进行反馈。反馈的数据包括浏览器的请求是否成功,状态码,浏览请请求所需要的数据信息等(一个html页面,图片等等)。

二. HTTP协议消息结构图



这个图清楚的显示了浏览器与服务器在http的协议下的传输交互过程。下面记录一下请求报文和响应报文的格式

三. 请求报文格式



通过浏览器开发人员工具截取请求百度的请求体和数据体来对上图进行说明:



如上图所示,为浏览器请求百度页面的的报文,正如格式上缩写第一行的GET就是请求方法,“/”就是url,HTTP/1.1就是协议的版本号。下面的几行就是通用类型名,请求头类型名等等(包括浏览器支持的压缩方式,支持的语言,tcp保持连接等信息)。

四. 响应报文格式



这里同样列出百度的响应例子:



第一行的HTTP/1.1是协议版本号,200是回应的状态码,ok是解释状态码的意思。这里表示请求成功。下面是一些状态码的意思:

“200” : OK

“302” : Found 重定向.

“400” : Bad Request 错误请求,发出错误的不符合Http协议的请求

“403” : Forbidden 禁止

“404” : Not Found 未找到。演示访问一个不存在的页面看报文

“500” : Internal Server Error 服务器内部错误。演示页面抛出异常。

五. 其他

1. http是无状态的,当执行刷新时,需要重复提交请求。

2. 网页中的图片、css、js等外部文件都需要各自的请求

3. 基于安全考虑,服务器不会向浏览器主动发送响应,若想要服务器想浏览器推送,则需要使用ajax等技术。

4. Http是“请求—响应”的工作方式。

5. 对于大文件的传输需要用到断点续传的原理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: