- HTTP请求是指从客户端到服务器端的请求消息。
- Http的状态码
- 1XX 信息类,客户端应当继续发送请求
- 2XX 成功状态码,表示请求被正确接收,理解,接受
- 3XX 表示重定向
- 4XX 表示客户端错误
- 5XX 表示服务器错误
- HTTP请求报文结构由4部分组成
- (1)请求方法 资源名称(URI) 协议/版本, 只占一行
- (2)请求头(Request Header),多行
- (3)空行
- (4)请求正文,一般是查询字符串信息, 有多种格式
- 例子:
- GET /hello.txt HTTP/1.1
- Accept:image/gif.image/jpeg.*/* Accept-Language:zh-cn, en, mi Connection:Keep-Alive Host:localhost
-
Host: www.example.comUser-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0) -
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3Accept-Encoding:gzip,deflate. - //请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,下面是请求正文
- username=jinqiao&password=1234
- HTTP响应报文结构由4部分组成
- <status-line>//状态行 包括:服务器HTTP协议版本 响应状态码 状态码的文本描述 <headers>//消息报头 <blank line>//空行 <response-body>//响应体
- 例子:
- HTTP/1.1 200 OK //服务器HTTP协议版本 响应状态码 状态码的文本描述
- Date:Sat,15Oct201115:39:29
- <blank line>//空行
- (空响应体)
- HTTP持久连接分为流水线和非流水线两种方式
- https在平时的项目中有用到过吗?
- 涉及传递用户隐私时
- 做javaweb项目时要把http改为https
- HTTP协议建立在TCP之上
- HTTP两种连接形式:无连接与Keep-Alive
- 无连接是指客户端与服务器之间不保持TCP连接,每个HTTP请求都要求打开一个TCP连接,并且使用一次之后就断开这个TCP连接。
- Keep-Alive的作用就是在第一次创建TCP连接时,服务器会把这个TCP连接保持一段时间。这样就可以在一次TCP连接中可以持续发送多份数据而不会断开连接。通过使用Keep-Alive机制,可以减少TCP连接建立次数。
- HTTP无状态:
- 无状态是指HTTP协议对于事务处理没有记忆能力。每次的请求都是独立的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况。
- 但基于HTTP协议的Web应用需要有状态(例如,购物车程序需要知道用户到底在之前选择了什么商品)。于是,用于保持Web应用状态的技术:Cookie与Session诞生了。
9. Http request的几种类型。
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。 需要一些实战
Get获取由Request-URI所标识的资源的信息。
POST方法用于想服务器发送请求,传输实体主体。
HEAD方法与GET方法几乎是一样的, 它们的区别在于HEAD方法只是请求消息报头,而不是完整的内容。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法
put用于传输文件
10. Http1.1和Http1.0的区别
在 HTTP/1.0 中,大多实现为每个请求/响应交换使用新的连接。
HTTP/1.1 很快出来了,提出了持久连接(persistent connection)的概念,也就是说同一条 HTTP 连接,可以同时处理多个请求,同时用一定的机制保证各个请求之间的分离性。
. Http请求的过程与原理
http://www.cnblogs.com/GumpYan/p/5821193.html
HTTP请求的过程&HTTP/1.0和HTTP/1.1的区别&HTTP怎么处理长连接
. Http怎么处理长连接。
在HTTP1.0和HTTP1.1协议中都有对长连接的支持。其中HTTP1.0需要在request中增加”Connection: keep-alive“ header才能够支持,而HTTP1.1默认支持.
http://www.cnblogs.com/GumpYan/p/5821193.html
HTTP请求的过程&HTTP/1.0和HTTP/1.1的区别&HTTP怎么处理长连接
HTTP2
http2的新特性:多路复用 二进制分帧 首部压缩(Header Compression) 服务端推送(Server Push)
目前 HTTP2 协议已经逐渐普及到日常服务器中,以下对于 HTTP2 协议描述正确的是:ABCD
- 所有http请求都建立在一个TCP请求上,实现多路复用
- 可以给请求添加优先级
- 服务器主动推送 server push
- HTTP2的头部会减小,从而减少流量传输
http://www.runoob.com/http/http-messages.html
- (超纲)http和socket的区别,两个协议哪个更高效一点
HTTP:超文本传输协议,首先它是一个协议,并且是基于TCP/IP协议基础之上的应用层协议。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,HTTP是应用层协议,主要解决如何包装数据。HTTP协议详细规定了浏览器与服务器之间相互通信的规则,是万维网交换信息的基础。HTTP是基于请求-响应形式并且是短连接,并且是无状态的协议。针对其无状态特性,在实际应用中又需要有状态的形式,因此一般会通过session/cookie技术来解决此问题。
Socket:Socket不属于协议范畴,而是一个调用接口(API),Socket是对TCP/IP协议的封装,通过调用Socket,才能使用TCP/IP协议。Socket连接是长连接,理论上客户端和服务器端一旦建立连接将不会主动断开此连接。Socket连接属于请求-响应形式,服务端可主动将消息推送给客户端。