学习了http的相关内容,将基础知识点都记下来,并且在node中实践了相关的http内容。
http基础知识
1.http的定义
http(HyperText Transfer Protocol),中文意思是指超文本传输协议,指的是在网络,网络之间或者是计算机用户与计算机用户之间进行网络传输和文件传输的一种超文本传输协议,对计算机安全和网络安全起着至关重要的作用。
2.http的请求过程
- 建立tpc请求
- web浏览器给web service发送请求命令
- web浏览器发送请求头信息
- web服务器应答
- web服务器发送应答头信息
- web服务器向浏览器发送数据
- web服务器关闭tpc请求
3.http的请求和响应格式
-
请求格式
http的请求格式由三部分组成:1.请求行 2.请求头 3.请求体
请求的第一行是“方法/URI协议/版本”例如:GET/sample.jsp HTTP/1.1
请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。
请求头的具体内容:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 表示客户端可以接受的内容类型,多个值使用;分号隔开。q=0.9 表示权重优先级,*/*表示可以接受任意类型内容;
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 表示客户端可以接受的语言
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64x64; 浏览器信息,例如使用的是网景的内核, windows64位系统;
Accept-Encoding: gzip, deflate 支持的压缩格式
Host: localhost:8888 访问地址
Connection: keep-alive 保持连接 和HTTP1.1版本有关,默认保持3s
Content-Type : application/x-www-form-urlencoded 表单提交时才有可能出现,表示表单的数据类型,使用url编码,url编码 % 16位数
Content-Length: 7 post请求 请求体长度
Upgrade-Insecure-Requests: 1 告诉服务器,浏览器可以处理https协议
请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。
-
响应格式
http的响应格式由三部分组成:1.状态行 2.响应头 3.响应体
状态行中会有状态码,表示响应的情况
状态码:
1xx:指示信息--表示请求已接收,继续处理。
2xx:成功--表示请求已被成功接收、理解、接受。
3xx:重定向--要完成请求必须进行更进一步的操作。
4xx:客户端错误--请求有语法错误或请求无法实现。
5xx:服务器端错误--服务器未能实现合法的请求。
常见状态代码、状态描述的说明如下。
200 OK:客户端请求成功。
400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
403 Forbidden:服务器收到请求,但是拒绝提供服务。
404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
500 Internal Server Error:服务器发生不可预期的错误。
503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
响应头
server: Apache-Coyote/1.1 服务器版本号
Set-Cookie:JSESSIONID=ECA8005D1235BBB6B9CFCC338A8206FD; Path=/03test; HttpOnly
Content-Type: text/html;charset=utf-8 响应字符集,告诉浏览器以什么样的字符集解码;
Content-Length: 265 响应体长度
Date: Fri, 23 Jun 2017 13:45:01 GMT 发送日期 少8个小时;
Expires: -1、Cache-control:no-cache、Pragma:no-cache 三个响应头一起使用, 表示禁止浏览器缓存当前
响应体 是服务器返回的数据