HTTP总结
2016-04-02 18:06
274 查看
关于HTTP协议感觉总是学了又忘,所以特别写一篇博客来增加印象.
Http协议(超文本传输协议,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。
当然上面的话太官方令人难以理解,简单来说,浏览器访问某个网站,就会发送一个request请求,然后web服务器收到请求后会生成相应的response然后返回给浏览器,而它们之间通讯的数据要遵循一定的规范,比如说什么消息头响应头状态码什么的,这种规范就是http请求。
Accept: text/html, application/xhtml+xml, image/jxr, / –>请求的资源类型
Accept-Encoding: gzip, deflate –>编码方式
Accept-Language: en-us ,zh-cn –>地区语言
Connection: Keep-Alive –>保持连接状态,以节省资源
Host: www.sohu.com –>请求的主机地址
User-Agent: Mozilla/5.0 –>用户信息,显示用户浏览器内核,操作系统等信息
Cache-Control:no-cache, no-store, must-revalidate –>控制缓存的信息
Content-Length:2410 –>内容长度
Content-Type: text/html –>内容的类型
Date:Sat, 02 Apr 2016 09:57:22 GMT –>响应时间
Server:apache –>Web服务器类型
206: (部分内容) 客户发送了一个带Rang头(要求服务器只返回资源/文档中的部分内容)的GET请求,服务器按要求完成了这个请求
302/307(临时重定向): 指出被请求的文档已经被临时移到别处,此文档的新URL在LOCATION响应头中给出.
304: (未修改)表示客户机缓存的版本是最新的,客户应该继续使用它
401:(未授权) 表示客户机访问的是一个受口令和密码保护的页面,结合使用一个WWW - Authenticate 响应头提示客户机应重新发出一个带 Authorization头的请求消息
404: (找不到资源) 服务器上不存在客户机请求的资源
500: (内部服务器错误) 服务器端的 CGI,ASP,JSP等程序发生错误.
get对于敏感信息不安全 post安全
get 提交数据体积受地址栏的限制, 一般在1KB以下. post没有,可以提交大体积数据
get将提交信息封装在请求行,也就是http消息头之前. post 数据体中,也就是http消息头之后的空行后
一、HTTP协议概述
首先来说一下HTTP协议是什么:Http协议(超文本传输协议,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。
当然上面的话太官方令人难以理解,简单来说,浏览器访问某个网站,就会发送一个request请求,然后web服务器收到请求后会生成相应的response然后返回给浏览器,而它们之间通讯的数据要遵循一定的规范,比如说什么消息头响应头状态码什么的,这种规范就是http请求。
二、HTTP结构剖析
1.HTTP请求信息
GET www.sohu.com HTTP/1.1 –>请求头,包含了请求方式,url和http协议版本Accept: text/html, application/xhtml+xml, image/jxr, / –>请求的资源类型
Accept-Encoding: gzip, deflate –>编码方式
Accept-Language: en-us ,zh-cn –>地区语言
Connection: Keep-Alive –>保持连接状态,以节省资源
Host: www.sohu.com –>请求的主机地址
User-Agent: Mozilla/5.0 –>用户信息,显示用户浏览器内核,操作系统等信息
2.HTTP响应消息
HTTP/1.1 200 OKCache-Control:no-cache, no-store, must-revalidate –>控制缓存的信息
Content-Length:2410 –>内容长度
Content-Type: text/html –>内容的类型
Date:Sat, 02 Apr 2016 09:57:22 GMT –>响应时间
Server:apache –>Web服务器类型
3.常见的响应状态码
200: 表示一切正常,返回的是正常请求结果206: (部分内容) 客户发送了一个带Rang头(要求服务器只返回资源/文档中的部分内容)的GET请求,服务器按要求完成了这个请求
302/307(临时重定向): 指出被请求的文档已经被临时移到别处,此文档的新URL在LOCATION响应头中给出.
304: (未修改)表示客户机缓存的版本是最新的,客户应该继续使用它
401:(未授权) 表示客户机访问的是一个受口令和密码保护的页面,结合使用一个WWW - Authenticate 响应头提示客户机应重新发出一个带 Authorization头的请求消息
404: (找不到资源) 服务器上不存在客户机请求的资源
500: (内部服务器错误) 服务器端的 CGI,ASP,JSP等程序发生错误.
4.GET请求和POST请求有何区别?
get会把提交的信息显示在地址栏上,post不会get对于敏感信息不安全 post安全
get 提交数据体积受地址栏的限制, 一般在1KB以下. post没有,可以提交大体积数据
get将提交信息封装在请求行,也就是http消息头之前. post 数据体中,也就是http消息头之后的空行后
相关文章推荐
- 《图解HTTP》
- 建立神经网络:Part 0
- linux下lighttpdserver的具体安装步骤 以及对flv流媒体的支持配置
- TCP建立连接和断开连接过程
- Wireshark-TCP协议分析(包结构以及连接的建立和释放)
- 机器学习:贝叶斯网络入门
- 计算机网络overview-1
- Tomcat配置https
- 【计算机网络】:TCP协议中的三次握手和四次握手
- 扣丁学堂笔记第19天Volley、android-async-http、ksoap2与WebView组件
- 如何在Android开发中高效使用Volley网络框架
- 跟着柴毛毛学Spring(4)——面向切面编程![这里写图片描述](http://img.blog.csdn.net/20171031111402095)
- 计算机网络最常用命令---网络安全必杀技
- Java联网技术之一TCP
- 网络叹号 win10 猎豹WIFI 网络连接失败
- Apache 的 httpd.conf 详解(很实用)
- IP TCP UDP 报文格式
- 神经网络-激活函数-面面观(Activation Function)
- 网络:请求本地服务器做法(socket)
- http协议请求方法和状态码