HTTP
HTTP请求与响应
HTTP请求request包括:请求行,请求头,空行,请求主体
- 请求行:请求方法(e.g., GET or POST),URL,协议版本(e.g., HTTP/1.1):get /index HTTP/1.1
- 请求头:key:value格式;
- 空行:表示开始消息主体,即使请求头为空也要保留空行
1 | POST /user HTTP/1.1 //请求行 |
HTTP响应response包括:响应行,响应头,空行,响应主体
- 响应行包括:协议版本,状态码,状态码描述
1 | HTTP/1.1 304 Not Modified |
常用请求方法GET和POST的区别
- GET将请求信息放在URL,POST放在报文体中(安全问题)
- GET可以被缓存、被存储,POST不行
- GET有URL最大长度限制,POST没有长度限制
HTTP常用状态码
状态码 | 类别 | 含义 |
---|---|---|
1XX | Informational(信息性状态码) | 接收的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
200 | OK | |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
301 | 永久重定向 | |
302 | 临时重定向 response.setStatus(302); respooen.setHeader(“location”,”/project/loc2”); 和response.sendRedirect(“/project/loc2”);是等价的; 定时刷新respooen.setHeader(“refresh”,”秒数;url=跳转的路径”); |
|
304 | Not Modified | |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
400 | 请求报文中存在语法错误 | Bad Request |
401 | 用户认证失败/无认证信息 | Unauthorized |
403 | 请求被拒绝 | Forbidden |
404 | Not Found | |
5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
500 | 服务器内部错误 | Internal Server Error |
503 | 服务器无法处理请求 | Service Unavailable |
Cookie和Session的区别
- Cookie
- 是由服务器发给客户端的特殊信息,以文本的形式存放在客户端
- 客户端再次请求的时候,会把Cookie回发给服务器
- 服务器接收到后,会解析Cookie生成与客户端相对应的内容
- 只能存储ASCII码
- Session
- 服务器端机制,在服务器上保存的信息,服务器负担比较高
- 解析客户端请求并操作session id,按需保存状态信息
- 可存取任何类型的数据
HTTP和HTTPS的区别
- HTTPS需要到CA申请证书,HTTP不需要
- HTTPS密文传输,HTTP明文传输
- 连接方式不同,HTTPS默认443端口,HTTP80端口
- HTTPS = HTTP + 加密 + 认证 + 完整性保护,较HTTP安全
HTTPS建立连接流程
- 浏览器将支持的加密算法信息发送给服务器
- 服务器选择一套浏览器支持的加密算法,以证书的形式回发浏览器
- 浏览器验证证书合法性,并生成随机密码,结合证书公钥加密信息发送给服务器(握手)
- 服务器使用私钥解密信息确定密码,验证哈希,加密响应信息回发浏览器
- 浏览器解密响应消息,并对消息进行验真,之后使用浏览器生成的随机密码进行对称加密交互数据