http基础

http头文件详解:

http://blog.csdn.net/kfanning/article/details/6062118

http请求:

http://www.cnblogs.com/yin-jingyu/archive/2011/08/01/2123548.html

http与socket比较:

http://blog.csdn.net/zeng622peng/article/details/5546384


HTTP:

http(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务。HTTP是一种无状态的协议,无状态是指Web浏览器和Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求(request),然后Web服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息。HTTP遵循请求(Request)/应答(Response)模型。Web浏览器向Web服务器发送请求,Web服务器处理请求并返回适当的应答。

HTTP使用内容类型,是指Web服务器向Web浏览器返回的文件都有与之相关的类型。所有这些类型在MIME Internet邮件协议上模型化,即Web服务器告诉Web浏览器该文件所具有的种类,是HTML文档、GIF格式图像、声音文件还是独立的应用程序。大多数Web浏览器都拥有一系列的可配置的辅助应用程序,它们告诉浏览器应该如何处理Web服务器发送过来的各种内容类型。

HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成,请求消息和响应消息都是由开始行,消息报头(可选的),空行(只有CRLF的行),消息正文(可选的)组成的。对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行。

HTTP REQUEST

http请求由三部分组成,分别是:请求行,消息报头和请求正文。

请求行以一个方法符号开头,后面跟着请求URI和协议版本,以CRLF作为结尾。如GET /form.html HTTP/1.1(CRLF)。

HTTP RESPONSE 

http响应由三个部分组成,分别是:状态行,消息报头和响应正文。

状态行:由协议版本,数字形式的状态代码,及相应的状态描述组成,格式如下:HTTP-Version Status-Code Reason-Phrase CRLF,如:HTTP/1.1 200 OK(CRLF)

消息报头和响应正文之间是一个空行(只有CRLF的行),这个空行表示消息报头己经结束,接下来是响应正文,响应正文就是服务器返回的资源的内容。



socket套接字:

套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。

建立socket连接

建立Socket连接至少需要一对socket,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。

套接字之间的连接过程分三步:服务器监听,客户端请求,连接确认。

服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。

客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。

连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。




http与socket区别:

很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接将数据传送给客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。



TCP/IP五层结构:            
应用层(Application):                                                                                     应用程序网关(application gateway)
        Telnet: 远程登录                                                                                       (在应用层连接两部分应用程序)     
        FTP(File Transfer Protocol):文件传输协议
        HTTP(Hyper Text Transfer Protocol):超文本传输协议
        SMTP(Simple Mail Transter Protocol):简单邮件传输协议
        POP3(Post Office Ptotocol):邮局协议
        SNMP(Simple Network Mangement Protocol):简单网络管理协议
        DNS(Domain Name System):域名系统
传输层(Transport):                                                                        传输网关(transport gateway)
       TCP(Transmission Control Potocol):传输控制协议                  (在传输层连接两个网络)
       UDP(User Data Potocol):用户数据协议
网络层(Internet):                                                                            多协议路由器(multiprotocol router)
       IP(Internet Protocol):网络协议                                                     (在异构网络间转发分组)
       ARP(Address Resolution Protocol):地址解析协议
       RARP(Reverse Address Resolution Protocol) :逆地址解析协议
       ICMP(Internet Control Message Protocol):因特网控制消息协议
       IGMP(Internet Group Manage Protocol):因特网组管理协议
       BOOTP (Bootstrap):可选安全启动协议
数据链路层(Data Link):                                                                     网桥(bridge)交换机(switcher)
  HDLC(High Data Link Control):高级数据链路控制                   (在LAN之间存储-转发数据链路针)
        SLIP(Serial Line IP):串行线路IP
        PPP(Point-to-Point Protocol):点到点协议
        802.2等
物理层(Physical):                                                                             中继器(repeater) 集线器(hub)
         无                                                                   (放大或再生弱的信号,在两个电缆段之间复制每一个比特)

猜你喜欢

转载自quding0308.iteye.com/blog/1627400