1. HTTP有哪些⽅法?
HTTP 1.0 标准中,定义了3种请求⽅法:GET、POST、HEAD
HTTP 1.1 标准中,新增了请求⽅法:PUT、PATCH、DELETE、OPTIONS、TRACE、CONNECT
2 .各个HTTP方法的具体作用是什么?
最常用的五种
GET POST PUT PATCH DELETE
他们是一类:get/delete 参数是在地址栏中传递的
他们是一类:put/patch/post 参数是在请求体传递的
3. GET方法和POST方法有何区别?
默认的http请求的内容, 在网络中传输, 明文的形式传递的 (https 对内容加密)
4. HTTP请求报文是什么样的?
5. HTTP响应报文是什么样的?
总结
6. 你了解的HTTP状态码有哪些?
7. HTTP的keep-alive是什么作用?
一、Keep-Alive的作用:
使客户端到服务器端的连接持续有效(长连接),当出现对服务器的后继请求时, Keep-Alive功能避免了建立或者重新建立连接。
二、Keep-Alive出现的原因
早期 HTTP/1.0 在每次请求的时候,都要创建⼀个新的连接,⽽创建连接的过程需要消耗资源和时间,为了减少资源消耗、缩短响应时间,就需要复⽤已有连接。 在后来的 HTTP/1.0 以及 HTTP/1.1 中引⼊了复⽤连接的机制,也就是在请求头中加⼊Connection: keep-alive, 以此告诉对⽅这个请求响应完成后不要关闭连接,下⼀次还⽤这个请求的连接进行后续交流。
协议规定,如果想要保持连接,则需要在请求头中加上 Connection: keep-alive。
keep-alive 的优点 (复用连接)
- 较少的 CPU 和内存的占⽤(因为要打开的连接数变少了, 复用了连接)
- 减少了后续请求的延迟(⽆需再进⾏握⼿)
缺点: 因为在处理的暂停期间,本来可以释放的资源仍旧被占用。请求已经都结束了, 但是还一直连接着也不合适
解决:Keep-Alive: timeout=5, max=100
-
timeout:过期时间5秒(对应httpd.conf里的参数是:KeepAliveTimeout),
-
max是最多一百次请求,强制断掉连接。
就是在timeout时间内又有新的连接过来,同时max会自动减1,直到为0,强制断掉。