HTTP协议
2016-05-18 21:07
423 查看
HTTP协议
1、HTTP协议概述
HTTP是什么?超文本传输协议。描述客户端和服务器端的数据标准,该协议由W3C维护和管理。
版本:
HTTP1.0:每次发出请求都需要建立网络连接
HTTP1.1:(主流)在一次网络连接上发出多次请求和得到多次响应。多了一些头。
明确:
浏览器遇到以下标记时,会自动发出请求
2、HTTP协议的组成
2.1请求部分2.2响应部分
3、请求部分详解
3.1请求行:GET /app1/1.html HTTP/1.1
GET:请求方式。
常用的请求方式:GET(默认的)、POST、HEAD、OPTIONS等
GET:默认的
http://localhost:8080/app1/1.html?username=abc&password=123
提交的数据显示出来了,相对不安全,协议的第一行有长度限制,<1kb.
(有请求数据时推荐)POST:可以通过<form method=”post”/>
username=abc&password=123
提交的数据在请求正文中的,相对安全,长度没有限制。
/app1/1.html:请求的资源地址。(URI)
URL:协议+主机:端口+资源地址
http://localhost:8080/app1/1.html
HTTP/1.1:客户端浏览器使用的协议的版本。
3.2请求消息头:(做好笔记,记住常用的头)
作用:向服务器端传递附加信息(暗号指令)
l Accept:告知服务器,客户端可以接受的数据类型(MIME类型)
文件系统:通过文件的扩展名区分不同的文件的。txt jpeg
MIME类型:大类型/小类型。 txt--->text/plain html---->text/html js---->text/javascript (具体对应关系:Tomcat\conf\web.xml)
l Accept-Encoding:告知服务器,客户端可以接受的压缩编码。比如gzip
l Accept-Language:告知服务器,客户端支持的语言。
l Referer:告知服务器,从哪个页面过来的。
作用:统计广告的投放效果;防止盗链。
l Content-Type:告知服务器,请求正文的MIME类型
默认类型:application/x-www-form-urlencoded(表单enctype属性的默认取值)
具体体现:username=abc&password=123
其他类型:multipart/form-data(文件上传时用的)
l If-Modified-Since:告知服务器,当前访问的资源,缓存中的文件的最后修改时间。
l User-Agent:告知服务器,浏览器的类型
l Content-Length:请求正文的数据长度
l Cookie:(*****重要)会话管理有关
3.3请求正文:
数据能提交到服务器,表单中的输入域必须有name属性值
POST请求是才有正文
username=abc&password=123
4、响应部分详解
4.1响应行:HTTP/1.1 200 OK
HTTP/1.1 :说明服务器端用的协议版本
200 :响应状态码
1XX 2XX 3XX 4XX 5XX
2XX:处理完毕
4XX:请求有误
5XX:服务器有误
记住常用的响应码:
200:一切正常
302/307:请求重定向
304:服务器上的资源没有发生改变
404:访问的地址不存在
500:服务器端错误
OK:响应吗描述
4.2响应消息头:
作用:服务器端向客户端传递的附加信息(暗号指令)
l Location:告知客户端,你去访问的地址。
和302/307实现请求重定向
l Content-Encoding:告知客户端,响应正文使用的压缩编码(gzip)
l Content-Length:告知客户端,响应正文的长度
l Content-Type:告知客户端,响应文正的MIME类型。默认text/html
l Refresh:告知客户端,定时刷新
l Content-Disposition:告知客户端,用下载的方式打开
attachment;filename=23.jpg
l Set-Cookie:(*****)会话有关
-------------
l Expires: -1 控制时间的
l Cache-Control: no-cache (1.1)
l Pragma: no-cache (1.0)
三头一块用,用于告知浏览器,不要缓存。
----------------------
4.3响应正文:
浏览器解析的正文内容,右键查看源码一样的。
相关文章推荐
- Caffe框架源码剖析(1)—构建网络
- 华中农业大学第四届程序设计大赛网络同步赛
- ClassNotFoundException: org.codehaus.xfire.transport.http.XFireConfigurableServlet怎么解决
- Android网络优先级及更改
- 最近笔记3
- http Cache-control
- commons-httpclient 3.x如何按照host单独配置连接数和超时参数
- [BS-23] AFN网络请求上拉/下拉刷新的细节问题总结
- Android批量加载网络图片存在的问题及简单实现
- https://github.com/hehonghui/android-tech-frontier
- 采用ListView实现网络图片的显示
- WebView,HttpURLConnection,HttpClient的简单使用
- 访问jsp报HTTP Status 500 - java.lang.NullPointerException的解决方法
- Android与服务器端通信方式(一)之HTTP、TCP、Socket
- AngularJS $http简介1
- 基础知识(十五)python简单http服务器
- 回归神经网络RNN(Recurrent Neural network)
- 回归神经网络RNN(Recurrent Neural network)
- 回归神经网络RNN(Recurrent Neural network)
- 回归神经网络RNN(Recurrent Neural network)