面试题
在浏览器地址栏键输入URL,按下回车之后经历的流程
答案:
DNS解析
TCP连接
发送HTTP请求
服务器处理请求并返回HTTP报文
浏览器解析渲染页面
连接结束

HTTP请求/响应的步骤
客户端连接到web服务器
发送HTTP请求
服务器请求并返回HTTP响应
释放连接TCP
客户端浏览器解析HTML内容

Http(超文本协议):
定义了web客户端如何从web服务器请求web页面以及服务器如何把web页面传送给客户端。
它采用请求响应模型:
客户端向服务器发送一个请求报文(包含请求方法,URL,协议版本,请求头,请求数据);
服务器以一个状态行作为响应(内容:协议版本,成功/错误代码,服务器信息,响应头,响应数据)
http状态码
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务端错误--服务器未能实现合法的请求

HTTP请求结构
请求报文
请求行
请求头部
请求正文


GET和POST不同
在HTTP报文层面:GET将请求信息放在URL也就是路由上,POST放在报文中,网络请求里
数据库层面:GET符合幂等性和安全性,POST不符合
其他层面:GET可以被缓存、被存储,而POST不行

HTTPS
它比HTTP多了一层SSL或者是TLS

SSL的介绍

HTTP是明文
而HTTPS相对于HTTP 它加密了 相对安全一些
它的加密方式
对称加密
非对称加密
哈希加密
数字签名

HTTTP数据传输流程
浏览器将支持的加密算法信息发送给服务器
服务器选择一套浏览器支持的加密算法,以证书的形式回反浏览器
浏览器验证证书合法性,并结合证书公钥加密信息发送给服务器
服务器使用私钥解密信息,验证哈希,加密响应会发浏览器
浏览器解密响应信息,并对消息进行验证,之后进行加密交互数据

cookie
它是存放在客户端的,客户端再次请求的时候,会吧cookie会发给服务器
服务接受到,解析cookie生成与客户端相对应的内容

它的实现方式
发送给服务器
服务器在响应给客户端
Session
它是存在服务器,它是以键值得方式存放在服务器


HTTP 和HTTPS 的区别
HTTPS和HTTP区别
HTTPS需要CA申请证书,HTTP不需要
HTTPS密文传输,HTTP明文
HTTPS默认使用443端口,HTTP80
HTTPS=HTTP+加密+认证+完整性保护,较HTTP安全


Socket
不管是java还是c这些
流程都是这样
服务器端
创建socket
绑定socket和端口
监听该端口号
然后客户端也创建socket
连接指定计算机的端口 connect()
服务器接受到客户端的连接请求(accept)
客户端向socket发送信息 写入信息send
服务器在进行读取客户端发送的信息recv
客户端关闭socket
服务器关闭socket


本文围绕面试题,介绍了HTTP请求/响应步骤、请求结构,对比了GET和POST的不同。阐述了HTTPS比HTTP多SSL或TLS层及加密方式、数据传输流程。还讲解了cookie和Session的存放位置与实现方式,最后说明了Socket在服务器端和客户端的操作流程。

4126

被折叠的 条评论
为什么被折叠?



