HTTP初步理解

来源:互联网 发布:mac怎么用wifi万能钥匙 编辑:程序博客网 时间:2024/05/16 16:06

HTTP服务器端,就是Web服务器端


什么是Web服务器?

        基于HTTP协议,将网页对应文件传输给客户端的服务器端


HTTP:Hypertext Transfer Protocol,超文本传输协议

Hypertext:超文本,是可以根据客户端请求而跳转的结构化信息

举例:通过浏览器访问图灵社区的主页的时候,首页文件将传输到浏览器并展现给大家,此时各位可以点击鼠标跳转到任意页面。

这种可跳转的文本就是超文本


HTTP协议,又是什么?

HTTP是以超文本传输为目的而设计的应用层协议,这种协议同样属于基于TCP/IP实现的协议

实现HTTP协议就相当于Web服务器端

浏览器属于基于套接字的客户端,因为连接到任意Web服务器端时,浏览器内部也会创建套接字,不过浏览器多了一项功能:浏览器将Web服务器端传递过来的HTML格式的文本解析为可读性较强的视图

因此,Web服务器端是以HTTP协议为基础传输超文本的服务器端


HTTP的特性:

   无状态的协议,客户端发来连接请求后,服务器响应后,就会断开连接,同一客户端再次请求,服务器也不知道是请求过的客户端

    因此无状态,但是现在由于HTTP无法保持连接的缺点,Web编程中通常会用Cookie和Session技术,来弥补这个缺点

举个例子:淘宝的时候,将宝贝加入购物车后,即使关闭浏览器,再次进入后,购物车中的信息也不会丢失,就是利用了Cookie技术


HTTP请求消息的结构:

       消息分为1.请求行:就是向服务器发送请求方式信息

                           ①GET,请求方式   

                                       例如:GET /index.html  HTTP/1.1,请求index.html文件,希望以1.1版本的HTTP协议进行通信

                           ②POST,传输数据

                                        例如:POST https://www.aaa.com  HTTP/1.1,向域名为www.aaa.com的服务器传输数据,希望以1.1版本的HTTP协议进行通信

                      2.消息头

                            请求的消息头:

                                        User Agent:mollla/5.0

                                        Accept:image/gif,image/jpeg

                                        这不包含的内容是发送请求的浏览器信息、用户认证信息等关于HTTP消息的附加信息

                      3.消息体

                              消息体中装有客户端向服务器端传输的数据,为了装入数据以POST方式发送请求

注:消息头与消息体之间以空行分开


HTTP响应消息的结构

           分为1.状态行  HTTP/1.1  200 OK,表示“我想用HTTP1.1版本进行响应,你的请求已正确处理”

                                   状态分为:①200 OK:成功处理了请求

                                                   ②404 Not Found:请求的文件不存在

                                                   ③400 Bad Request:请求方式错误,请检查

                   2.头消息:

                                Server:BalabalaServer

                                Content-type:text/html

                                Content-length:2048

                                 包含传输数据类型和长度等信息

                   3.消息体

                                 通过消息体发送客户端请求的文件数据

联系一下TCP/IP

HTTP是基于TCP协议的,传递数据方式也是基于socket的编程,在TCP客户端只不过就是在发送数据的时候,按照HTTP协议将数据组装成符合HTTP协议的数据,然后通过Socket的send函数将这个数据发送出去,服务器端通过socket的recv函数收到数据后也会进行解析发送过来的HTTP协议的数据,然后进行处理


原创粉丝点击