青岛网站建设青岛新思维,免费图纸网站,可以做护考题目的网站,正规网站建设网站制作1.HTTP协议是什么#xff1f;
HTTP协议是一种超文本传输协议#xff0c;它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。
设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
我们平时输入 URL 来进行搜索的时候#xff0c;一般开头就会有 h…1.HTTP协议是什么
HTTP协议是一种超文本传输协议它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。
设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
我们平时输入 URL 来进行搜索的时候一般开头就会有 http 或者 https。
常见的HTTP超文本传输协议默认端口80、HTTPS默认端口443、SMTP(传邮件.默认端口25)、FTP传文件默认端口21、Telnet远程登录默认端口23
2.HTTP的原理
HTTP 协议工作于客户端-服务端架构上。
浏览器作为 HTTP 客户端通过 URL 向 HTTP 服务端即 WEB 服务器发送所有请求。
Web 服务器根据接收到的请求后向客户端发送响应信息。
HTTP 默认端口号为 80但是你也可以改为 8080 或者其他端口。
访问百度 3.HTTP版本
HTTP0.9只支持GET这一个请求方式只能访问HTML格式的资源。没有 Header 等描述数据的信息。服务器在发送数据完毕后就关闭 TCP 连接。
HTTP1.0增加了 POST、PUT请求。一次请求创建一次连接获得一个Web资源响应后就会断开连接下一个请求需要再次建立 TCP 连接。三次握手因此效率很低。默认短链接。
HTTP1.1目前主流一次请求创建一次连接可以允许多个HTTP请求获得多个web资源默认长连接。
持久连接即 TCP 连接默认不关闭可以被多个请求复用提高了请求性能。
管道机制(pipeline)即在同一个 TCP 连接里面客户端可以同时发送多个请求。例如浏览器同时发出 A 请求和 B 请求但是服务器还是按照顺序先回应 A 请求完成后再回应 B 请求。
HTTP2.0HTTP2 主要解决了传输性能的问题。增加双工模式不仅客户端能够同时发送多个请求服务端也能同时处理多个请求是一个并行的效率。 HTTP2 中对头信息进行了压缩减少了对带宽的占用。
4.HTTP 报文格式
请求端客户端的 HTTP 报文叫做请求报文响应端服务器端的叫做响应报文。
客户端请求消息
请求报文是由请求行请求方法请求 URL协议版本、请求头部、空行、请求主体四部分组成 GET/sample.jspHTTP/1.1 请求行
Accept:image/gif.image/jpeg, 请求头部
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Accept-Encoding:gzip,deflateusernamejinqiaopassword1234 请求主体
服务端响应消息
HTTP响应也由四个部分组成分别是状态行、响应首部、空行和响应主体。
HTTP/1.1 200 OK 状态行
Server:Apache Tomcat/5.0.12 响应首部
Date:Mon,6Oct2003 13:23:42 GMT
Content-Length:112html 响应主体headtitleHTTP响应示例title/headbodyHello HTTP!/body
/html 5.HTTP方法
序号方法描述1GET请求指定的页面信息并返回实体主体。2HEAD类似于 GET 请求只不过返回的响应中没有具体的内容用于获取报头3POST向指定资源提交数据进行处理请求例如提交表单或者上传文件。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。4PUT从客户端向服务器传送的数据取代指定的文档的内容。5DELETE请求服务器删除指定的页面。6CONNECTHTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。7OPTIONS允许客户端查看服务器的性能。8TRACE回显服务器收到的请求主要用于测试或诊断。9PATCH是对 PUT 方法的补充用来对已知资源进行局部更新 。
HTTP1.0 定义了三种请求方法 GET, POST 和 HEAD 方法。
HTTP1.1 新增了六种请求方法OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
可以把PUT、DELETE、POST、GET理解为客户端对服务端的增删改查
PUT上传文件向服务器添加数据可以看作增DELETE删除文件POST传输数据向服务器提交数据对服务器数据进行更新GET获取资源查询服务器资源
6.HTTP的长连接和短链接
在HTTP/1.0中默认使用的是短连接。也就是说浏览器和服务器每进行一次HTTP操作就建立一次连接但任务结束就中断连接。如果客户端浏览器访问的某个HTML或其他类型的 Web页中包含有其他的Web资源如JavaScript文件、图像文件、CSS文件等当浏览器每遇到这样一个Web资源就会建立一个HTTP会话。但从 HTTP/1.1起默认使用长连接用以保持连接特性。使用长连接的HTTP协议会在响应头有加入这行代码Connection:keep-alive 在使用长连接的情况下当一个网页打开完成后客户端和服务器之间用于传输HTTP数据的 TCP连接不会关闭如果客户端再次访问这个服务器上的网页会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接它有一个保持时间可以在不同的服务器软件如Apache中设定这个时间。实现长连接要客户端和服务端都支持长连接。HTTP协议的长连接和短连接实质上是TCP协议的长连接和短连接。
7.HTTP 响应头信息
应答头说明Allow 服务器支持哪些请求方法如GET、POST等。 Content-Encoding 文档的编码Encode方法。只有在解码之后才可以得到Content-Type头指定的内容类型。 Content-Length 表示内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据。 Content-Type 表示后面的文档属于什么MIME类型。Servlet默认为text/plain但通常需要显式地指定为text/html。 Date 当前的GMT时间。 Expires 应该在什么时候认为文档已经过期从而不再缓存它 Last-Modified 文档的最后改动时间。 Location 表示客户应当到哪里去提取文档。 Refresh 表示浏览器应该在多少时间之后刷新文档以秒计。 Refresh头不属于HTTP 1.1正式规范的一部分而是一个扩展但Netscape和IE都支持它。 Server 服务器名字。Servlet一般不设置这个值而是由Web服务器自己设置。 Set-Cookie 设置和页面关联的Cookie。 WWW-Authenticate 客户应该在Authorization头中提供什么类型的授权信息在包含401Unauthorized状态行的应答中这个头是必需的。 注意Servlet一般不进行这方面的处理而是让Web服务器的专门机制来控制受密码保护页面的访问例如.htaccess。
8.HTTP 状态码 200服务器已经成功处理了请求301永久移动请求的网页已经永久移动到新的位置。服务器返回此响应时会自动将请求者转到新的位置302临时移动服务器目前从不同位置的网页响应请求但请求者应该继续使用原有位置来进行以后的请求。400客户端请求有语法错误不能被服务器所理解403服务器收到请求但是拒绝访问对应资源404服务器找不到请求网页未找到500服务器遇到错误无法完成请求服务器内部错误。
9.HTTP常见Header
Host客户端告知服务器所请求的资源在哪儿Connection默认值是keep-alive要求服务器不要关闭TCP连 接close()表示明确要求关闭连接。Accept-Encoding说明自己可以接收的压缩方式User-Agent声明用户的操作系统和浏览器版本信息Content-Type数据类型常见的有html、 image/jpegimage/pngvideo/mp4application/jsonzipContent-LengthBody的长度请求和响应头都可以使用Location:搭配3**状态码使用告诉客户端接下来要去哪里访问Cookie用于在客户端存储少量信息.通常用于实现会话的功能Set-Cookie服务器向客户端设置CookieReferer: 当前页面是从哪个页面跳转过来的
10.HTTP 三点注意事项 HTTP 是无连接无连接的含义是限制每次连接只处理一个请求服务器处理完客户的请求并收到客户的应答后即断开连接采用这种方式可以节省传输时间。 HTTP 是媒体独立的这意味着只要客户端和服务器知道如何处理的数据内容任何类型的数据都可以通过HTTP发送客户端以及服务器指定使用适合的 MIME-type 内容类型。 HTTP 是无状态HTTP 协议是无状态协议无状态是指协议对于事务处理没有记忆能力缺少状态意味着如果后续处理需要前面的信息则它必须重传这样可能导致每次连接传送的数据量增大另一方面在服务器不需要先前信息时它的应答就较快。
11.HTTP和HTTPS的区别
HTTPHTTPS端口80443安全性无加密安全性较差有加密机制安全性较高资源消耗较少由于加密处理资源消耗更多是否需要证书不需要需要协议运行在TCP协议之上运行在SSL协议之上SSL运行在TCP协议之上