前端常见面试题之http和https

前端常见面试题之http和https

http:

基本概念:超文本传输协议,是互联网应用很广泛的一个网络协议,也是前端面试最经常出现的一个面试题。其负责完成从客户端到服务端的一系列操作流程,专门用来传输HTML的超媒体文档等web内容。其是建立在TCP协议的基础上的应用层协议。http是通过明文方式传输内容,因此安全性较低。
标准端口:80
URL开头:http://
安全性:明文传输,安全性较低

https:

基本概念:是建立在安全套接字基础上的http协议,由SSL和http协议共同构建的可进行加密传输、身份认证的网络协议。
标准端口:443
URL开头:https://
安全性:进行加密传输,身份认证。安全性较高

常见的http请求方式(对应增删改查):

  1. GET:获取服务器中的资源(查)
  2. POST:从客户端向服务器端提交资源(增)
  3. PUT:修改服务器端资源(改)
  4. DELETE:删除服务器端资源(删)

http请求报文和响应报文:

请求报文格式:请求行、请求头部、请求正文。

响应报文格式:状态行、响应头部、响应正文。

常用http状态码:

2XX:请求成功
3XX:资源被重定向到其他的URL
4XX:客户端错误
5XX:服务器端错误

完整的http请求:

1、在搜索地址栏输入网站的url地址。

2、输入url地址后,浏览器会通过查找浏览器缓存、系统缓存、路由缓存。若有缓存就可以直接显示(在Cache—Control的max_age字段中有缓存的有效时间),若无则进行下一步。

3、通过DNS获取url对应的ip地址。查询本机的host文件中查找是否有url对应的ip地址,若无则请求DNS进行ip地址的获取。

4、建立TCP连接。通过TCP三次握手建立连接。

5、浏览器向web服务器发送请求。

6、浏览器给web服务器发送请求头信息。如果是POST还要发送请求体。

7、web服务器进行响应,并发送响应头消息。

8、web服务器发送数据。以响应头里面的content-type(媒体类型)描述的格式发送数据。

9、web服务器关闭连接。web服务器向浏览器发送了应答数据之后,就要关闭TCP连接(TCP四次握手关闭连接),如果添加了connection:keep-alive就继续保持连接。

常见content-type:

text/html : HTML格式
text/plain :纯文本格式      
text/xml :  XML格式
image/gif :gif图片格式    
image/jpeg :jpg图片格式 
image/png:png图片格式

以application开头的常见的媒体格式:
application/json : JSON数据格式
application/xhtml+xml :XHTML格式
application/xml : XML数据格式
application/atom+xml :Atom XML聚合格式
application/pdf :pdf格式
application/msword : Word文档格式
application/octet-stream : 二进制流数据(如常见的文件下载)
multipart/form-data : 表单中需要提交文件时的上传格式

三次握手建立连接:
第一次握手:客户端发送SYN包,进入SYN_SENT状态,等待服务器的确认。
第二次握手:服务器端收到SYN包同时为了验证是对应的用户,将SYN+1同时自己也发送一个ACK包,将SYN+1和ACK包发送给客户端,随之进入SYN_RECV状态等待建立连接。
第三次握手:客户端收到SYN+1和ACK包,给服务器再发送确认包在原来的ACK+1,发送完毕便进入连接状态,完成三次握手。

四次挥手断开连接:

第一次挥手:客户端发出fin,并且停止发送数据。
第二次挥手:服务器收到fin,发出ack。
第三次挥手:服务器发送fin给客户端。
第四次挥手:客户端发送ack给服务器。

你可能感兴趣的:(前端面试题,前端,javascript)