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. 对于大文件的传输需要用到断点续传的原理。
一. 关于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. 对于大文件的传输需要用到断点续传的原理。
相关文章推荐
- Tinyhttpd源码解析
- administrator内置账户“ 网络无法访问,你可能没有权限使用网络资源,请与管理员联系...” 解决办法
- 【读书笔记】:网络安全复习
- 大端和小端(网络字节序和主机字节序)
- Java 网络编程
- android gradle project的时候connect refused:connect或者卡在building gradle download https:
- 零碎问题收集(自己收集的问题,解决方法有自己的、也有转自网络)
- https://locahost:1158/em
- 【转】Html表头Meta http-equiv属性详解
- 网络基础-再议TCP
- 网络通信 --> 互联网协议(二)
- TCP的长连接、短连接、keepalive及心跳
- bzoj-3144 切糕
- 网络通信 --> 互联网协议(一)
- BP神经网络——从二次代价函数(Quadratic cost)到交叉熵(cross-entropy cost)代价函数
- 保护成员 http://c.biancheng.net/cpp/biancheng/view/229.html
- 批量下载网页中所有的PDF文档
- C++继承:公有,私有,保护 http://www.cnblogs.com/qlwy/archive/2011/08/25/2153584.html
- Android中的Http通信(三)之get、post传递参数到服务器
- HttpClient第一章(一)