Java面试--网络篇(超级详细,看完迎接offer)

1、HTTP 响应码有哪些?分别代表什么含义?

HTTP响应码用于表示HTTP请求处理的结果。HTTP响应由一个状态码和可选的一些元数据组成,例如HTTP头部和消息体。以下是常见的HTTP响应码和它们的含义:

  • 1xx (信息性响应):这些状态码表示请求已经被接收,并且继续处理中。

    • 100 Continue:服务器已经接收到请求头部,并且客户端应该继续发送请求主体(例如,POST数据)。
    • 101 Switching Protocols:服务器已经理解并接受了客户端请求,将切换协议。
  • 2xx (成功响应):这些状态码表示请求已经被成功处理并返回。

    • 200 OK:请求已成功,请求所希望的响应头或数据体将随此响应返回。
    • 201 Created:请求已经被实现,且创建了新的资源。
    • 204 No Content:请求成功,但没有资源要返回,响应头和响应正文为空。
  • 3xx (重定向响应):这些状态码表示需要客户端进一步处理才能完成请求。

    • 301 Moved Permanently:所请求的页面已经转移至新的 URL。
    • 302 Found:所请求的页面暂时转移至新的 URL。
    • 304 Not Modified:资源未被修改,可以从客户端缓存中读取。
  • 4xx (客户端错误响应):这些状态码表示客户端请求有错误。

    • 400 Bad Request:请求无效,服务器无法理解它。
    • 401 Unauthorized:请求需要身份验证。
    • 403 Forbidden:服务器拒绝请求,没有访问权限。
    • 404 Not Found:所请求的资源不存在。
  • 5xx (服务器错误响应):这些状态码表示服务器处理请求时发生错误。

    • 500 Internal Server Error:服务器遇到意外的错误,无法完成请求。
    • 502 Bad Gateway:服务器作为网关或代理时,从上游服务器接收到无效响应。
    • 503 Service Unavailable:服务器暂时无法处理请求,通常是由于过载或维护。

2、Forward 和 Redirect 的区别?

Forward和Redirect都是用于在web应用程序中将请求发送到另一个页面或资源的技术,它们的主要区别在于浏览器与服务器之间的通信方式以及客户端是否会看到新的请求。

Forward是在服务器端完成的,当一个页面收到一个请求时,它可以将请求转发给另一个页面或servlet进行处理,然后将结果返回给浏览器。在这个过程中,浏览器不知道发生了任何转发,它仍然显示的是原始请求的URL。此外,因为所有的请求和响应都是在服务器上处理的,所以Forward可以访问同一应用程序中的所有资源和属性,比如在请求处理中创建的会话。

Redirect则是在客户端和服务器之间进行的,当一个页面收到一个请求时,它会发送一个响应,告诉浏览器重定向到另一个页面或资源的URL。浏览器会根据响应中的新URL重新发起请求,然后服务器将响应发送给浏览器。因此,Redirect会在浏览器的地址栏中显示新的URL,这意味着客户端会看到新的请求。由于这种方式涉及到两个请求,所以它需要额外的时间和资源,而且无法访问在前一个请求处理中创建的会话属性等资源。

总之,Forward和Redirect都是将请求转发到另一个页面或资源的技术,但它们的工作方式和适用场景不同。Forward更适合在同一应用程序中的不同页面之间共享数据和处理请求,而Redirect更适合在不同的应用程序之间进行页面跳转和处理。

3、 Get 和 Post 请求有哪些区别?

Get和Post是HTTP请求的两种常见方法,它们之间的区别主要有以下几点:

  1. 数据传递方式:Get请求通过URL传递数据,而Post请求通过请求体(request body)传递数据。具体来说,Get请求的参数会被追加到URL的末尾,形成一个带参数的URL,例如:http://example.com/search?q=keyword。而Post请求的参数则包含在请求体中,不会显示在URL中。

  2. 安全性:由于Get请求的参数直接暴露在URL中,因此容易被第三方获取和篡改,所以它不适合传递敏感信息,比如密码等。而Post请求的参数则在请求体中,相对于Get请求更加安全,适合传递敏感信息。

  3. 缓存:由于Get请求的参数包含在URL中,所以浏览器可以对其进行缓存,这意味着对于相同的URL,浏览器可以直接从缓存中获取响应结果,而不必重新发送请求。相比之下,Post请求不支持缓存,因为它的请求参数包含在请求体中,而请求体无法被浏览器缓存。

  4. 幂等性:Get请求具有幂等性,即对于相同的请求,重复发送多次不会对服务器产生任何影响。而Post请求不具有幂等性,即对于相同的请求,重复发送可能会产生不同的结果或产生副作用,例如创建一条新记录或更新服务器状态等。

  5. 适用场景:由于Get请求的参数直接暴露在URL中,因此适合用于请求非敏感信息,比如查询、搜索等场景。而Post请求适合用于提交表单、上传文件等需要传递大量数据或敏感信息的场景。

总之,Get和Post请求有各自的特点和适用场景,开发者需要根据具体需求和安全性要求选择合适的请求方式。

4、说说TCP与UDP的区别,以及各自的优缺点

TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是互联网上两个最常用的传输协议,它们有以下几点区别:

  1. 连接性:TCP是面向连接的协议,它在通信之前必须要建立连接,然后才能进行数据传输。而UDP是无连接的协议,通信双方不需要建立连接就可以进行数据传输。

  2. 可靠性:TCP是一种可靠的协议,它会在数据传输过程中进行错误检测和重传,保证数据的完整性和准确性。而UDP则不保证数据传输的可靠性,因为它不会进行错误检测和重传,数据可能会丢失或者乱序。

  3. 效率:由于TCP需要建立连接、进行错误检测和重传等额外的操作,所以相对于UDP来说,TCP的效率较低。而UDP的效率较高,因为它不需要进行额外的操作,数据能够更快地传输。

  4. 传输方式:TCP是面向字节流的协议,数据在传输过程中会被分成小的数据包,然后进行传输。而UDP是面向数据报的协议,数据以数据包的形式进行传输,每个数据包都是独立的,互不干扰。

  5. 适用场景:由于TCP具有可靠性和连接性,适合用于传输要求可靠的数据,例如网页、电子邮件、文件传输等。而UDP适合用于传输实时性要求较高、数据量较小的数据,例如音频、视频、游戏等。

总的来说,TCP和UDP各有优缺点,需要根据具体应用场景来选择合适的传输协议。如果数据传输的可靠性比较重要,可以选择TCP,而如果要求数据传输速度和实时性较高,可以选择UDP。

5、说一下HTTP和HTTPS的区别

HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)都是用于在网络中传输数据的协议,它们的主要区别如下:

  1. 安全性:HTTP协议是明文传输数据的,因此不够安全,容易被黑客攻击拦截、篡改数据。而HTTPS通过SSL/TLS协议对数据进行加密传输,可以保证数据的安全性,防止数据被窃取和篡改。

  2. 数据传输方式:HTTP和HTTPS的数据传输方式是不同的。HTTP使用的是明文传输,数据包裹在请求报文和响应报文中,传输过程中可能会被拦截和篡改。而HT

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值