1、什么是http?
HTTP是Web浏览器和Web服务器之间通信的标准协议。
2、http1.1
在HTTP 1.1和之后的版本中,服务器不必在发送响应后就关闭连接。可以保持连接打开,在同一个socket上等待来自客户端的新请求。可以在一个TCP连接上连续发送多个请求和响应。不过,服务器响应之后,客户端的锁步模式还是一样的。客户端可以在HTTP请求首部中包括一个Connection字段,指定值为Keep-Alive,指示它希望重用一个socket。
一、http执行流程。
HTTP指定客户端与服务器如何建立连接,客户端如何从服务器请求数据,服务器如何响应请求,以及最后如何关闭连接
a) 默认情况下,客户端在端口80打开与服务器的一个TCP连接,URL可以指定其他端口。
b) 客户端向服务器发送消息,请求指定路径上的资源。这个请求包括一个首部,可选地址还可以有一个空行,后面是请求的数据
解释:每个请求包含一个首部行,一个包含元数据的HTTP首部,一个空行,然后是一个消息体。
像这样的请求不包含消息体,所以请求以一个空行结束。
第一行称为请求行,包含一个方法、资源的路径以及HTTP的版本。方法指定了请求的操作,GET方法表示返回一个服务器的资源的表示。/index.html是从服务器请求的资源的路径。HTTP/1.1是客户理解的协议的版本。
User-Agent:表示让服务器知道使用的是什么浏览器,并允许服务器发送为特定浏览器类型而优化的文件。
Host:指定服务器的域名
Accept:告诉服务器客户端可以处理那些数据类型。已经定义了8种顶级类型:
text/*表示人可读的文字,image/*表示图片,model/*表示3D模型,如VRML文件。audio/*表示声音,video/*表示移动的图片,包括声音,application/*表示二进制数据,message/*表示协议特定的信封,如email消息和HTTP响应,multipart/*表示多个文档和资源的容器。
最后请求以一个空行结束。
c) 服务器向客户端发送响应。响应以响应码开头,后面是包含元数据的首部,一个空行以及所请求的文档或者错误信息
d) 服务器关闭连接
3、http响应码
1xx:信息
100 Continue 服务器准备接受请求主题,客户端应当发送请求主体;这允许客户端在请求中发送大量数据之前询问服务器是否将接受请求。
101 Switching Protocols 服务器接受客户端在Upgrage首部字段中要求改变应用协议的请求,如从HTTP改为WebSockets
2xx Successful 请求成功
200 OK 请求成功
201 Created 服务器已经在响应主题中指定的URL处创建了资源。
203 由代理服务器返回资源
204 服务器处理请求但不返回资源给客户端
205 服务器处理请求但不返回资源给客户端并删除客户端表单数据
3xx 重定位及其重定向
300 服务器为所请求的文档提供一组不同表示
301 服务器上的资源已经移动到一个新的url中
302 服务上的资源暂时位于一个新的url中
4xx 客户端错误
400 客户端向服务器发送的请求语法错误
401 需要身份认证
403 服务器拒绝(响应超时)
404 资源路径找不到
5xx 服务器错误
500 发生意外情况,服务器不知道如何处理
501 服务器不能处理该类方法请求
502 代理服务器不能连接到内部服务器
4、http方法
HTTP主要有GET,POST,PUT,DELETE方法
GET PUT DELETE方法具有幂等性(执行同样多次操作和执行以此操作的结果影响是一样的。)
HEAD方法:返回首部;OPTIONS:返回服务器支持处理某一个资源的方法的类型
5、Session与cookie的区别参见:
a) http://www.cnblogs.com/linguoguo/p/5106618.html