HTTP 狀態碼列表

每個 HTTP 響應都附帶一個狀態碼,以明確的數字信息表明請求的處理方式。 HTTP 狀態碼是從服務器發送給客戶端的 HTTP 響應的首行。 如果您想知道服務器為什麼發送了特定的狀態碼以及它的含義,或者如果您正在構建服務器並且正在尋找要返回的完美的狀態碼,這個列表將非常有用。 狀態碼由 3 位數字和一個簡短的描述組成。 數字的第一位確定了響應組。 共有五個組: 1xx:信息性響應 - 表示請求已接收且已被理解 2xx:成功的響應 - 表示客戶端發出的請求已被接收、理解和接受 3xx:重定向 - 表示客戶端必須採取其他操作才能完成請求 4xx:客戶端錯誤 - 表示發生了客戶端引起的錯誤 5xx:服務器錯誤 - 表示發生了服務器上的錯誤 在本文的其餘部分中,我列出了所有有用的狀態碼。 (我刪除了一些特定於技術的狀態碼,例如 WebDAV 和很少使用的狀態碼) 信息性響應 狀態碼 描述 100 Continue 服務器已收到請求標頭,客戶端應繼續發送請求正文(例如,POST 請求)。 在請求被拒絕適用於不適當的標頭之後,將大的請求正文發送到服務器可能是低效的。 要求服務器檢查請求的標頭,客戶端必須在初始請求中作為標頭發送 Expect: 100-continue,並在接收到 100 Continue 狀態碼的響應後再發送正文。 如果客戶端收到 403(Forbidden)或 405(Method Not Allowed)等錯誤碼,那麼它就不應該發送請求的正文。 回應 417 Expectation Failed 表示應該重複請求,而不使用 Expect 標頭,因為它表示服務器不支持期望(對於 HTTP/1.0 服務器來說就是這種情況)。 101 Switching Protocols 客戶端要求服務器切換協議,服務器已同意切換。參見 RFC 7231 #6.2.2 成功的響應 狀態碼 描述 200 OK 標準的成功 HTTP 請求響應。 201 Created 通常是對 POST 請求的回應。請求已完成,並創建了新的資源。 202 Accepted 請求已被接受處理。對實際處理以及結果沒有具體要求,可能發生在另一個服務器上或批量處理。 203 Non-Authoritative Information 原始服務器返回了 200,並且位於客戶端和服務器之間的轉換代理更改了有效負載。 204 No Content 服務器成功處理了請求,但沒有返回任何內容。 205 Reset Content 服務器成功處理了請求,但沒有返回任何內容。類似於 204 響應,但服務器要求客戶端重置文檔視圖(例如用於清除表單) 206 Partial Content 根據客戶端發送的 Range 請求,服務器發送部分內容的響應。參見 RFC 7233 #4....

如何使用JavaScript重定向到另一个网页

JavaScript提供了许多方法来将用户重定向到不同的网页。学习最常用的方法,也了解一下所有其他选项,使用纯JavaScript。 如果在程序执行期间需要转到另一个页面,JavaScript提供了许多方法来将用户重定向到不同的网页。 其中被认为是规范的导航到新URL的方法是: window.location = 'https://newurl.com' 如果要重定向到同一域中的不同路径,请使用: window.location.pathname = '/new' 这是使用History API提供的location对象来实现的。 其他重定向选项 程序设计的大多数情况下,同一个操作可以有多种方法来执行。 因为浏览器中的window是隐式的,所以你也可以这样做: location = 'https://newurl.com' 另一种方法是设置location的href属性: window.location.href = 'https://newurl.com' location对象还有一个assign()方法,它接受一个URL,并执行相同的操作: window.location.assign('https://newurl.com') replace()方法与前面的方法不同,因为它重写了历史记录中的当前页面。当前页面被抹掉,所以当你点击“返回”按钮时,你会回到现在成为最后访问页面的页面。 window.location.replace('https://newurl.com') 在某些情况下,这可能很方便。 访问window对象的不同方式 浏览器暴露了self和top对象,它们都引用window对象,所以你可以在上述所有示例中使用它们来代替window: self.location = 'https://newurl.com' top.location = 'https://newurl.com' 使用服务器端指令进行301重定向 前面的示例都考虑了程序决定跳转到另一页的情况。 如果需要重定向是因为当前URL已经过时并且需要进一步跳转到新的URL,最好使用服务器级的指令,并设置301 HTTP代码以通知搜索引擎当前URL已经永久移动到新资源。 如果使用Apache,可以通过.htaccess来实现这一点。Netlify通过一个_redirects文件来完成这个任务。 是否可以使用JavaScript进行301重定向? 不幸的是,不可以。 这是无法在客户端上完成的。 301 HTTP响应代码必须在JavaScript被浏览器执行之前从服务器发送。 实验证明,搜索引擎将JavaScript重定向解释为301重定向。参见这篇Search Engine Land的文章。 Google表示: 使用JavaScript重定向用户可以是一种合理的做法。例如,如果用户登录后将其重定向到内部页面,可以使用JavaScript来实现。在检查JavaScript或其他重定向方法以确保您的网站符合我们的指南时,请考虑意图。请记住,当移动您的网站时,301重定向是最佳选择,但如果您无法访问网站的服务器,则可以使用JavaScript重定向来实现该目的。 使用HTML元标签 另一种选择是在HTML中使用元标签: <html> <head> <meta http-equiv="refresh" content="0;URL=https://newurl.com/"> </head> </html> 这将导致浏览器在加载并解析当前页面后加载新页面,并且不会向搜索引擎发送任何信号。始终使用301服务器级别重定向是最佳选择。