`

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)
         无                                                                   (放大或再生弱的信号,在两个电缆段之间复制每一个比特)

分享到:
评论

相关推荐

    HTTP基础知识培训

    HTTP基础知识培训是一场针对IT行业测试领域的专业课程,旨在帮助团队成员掌握HTTP协议的基本知识和实践应用。培训内容广泛,涵盖了从基础的HTTP协议概述到请求/响应模型,再到各种请求方法和状态码,以及HTTP协议在...

    HTTP基础类

    本篇将深入探讨HTTP基础类及其在编程中的应用。 HTTP协议的核心概念包括请求(Request)和响应(Response)。请求由客户端发起,包含一个方法(GET、POST等)、一个URL、HTTP版本、请求头部以及可能的请求体。响应...

    servlet+jsp+http基础

    【HTTP基础】 HTTP(Hypertext Transfer Protocol)是互联网上的应用最广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。HTTP是无状态的,意味着每个请求都被视为独立的事务,服务器不会...

    HTTP基础8张脑图.zip

    下面将通过分析标题和描述中的8张脑图,逐一探讨HTTP的基础知识。 1. **客户端和服务器端交互基础**: 这一脑图可能涵盖了HTTP请求和响应的基本结构,包括请求方法(GET、POST等)、请求头、请求体以及响应状态码...

    p12 - p28TCP基础篇

    本篇文章主要介绍了 HTTP 基础知识,包括 HTTP 的基本概念、Get 与 Post、HTTP 特性、HTTPS 与 HTTP、HTTP/1.1、HTTP/2、HTTP/3 演变等。 HTTP 基本概念 ---------------- HTTP 是超文本传输协议,英文全称为 ...

    基于java实现计算机网络的基础知识(TCPIP,HTTPHTTPS)等源码.zip

    HTTPS(安全超文本传输协议)是在HTTP基础上加入了SSL/TLS加密层,以保证数据传输的安全性。在Java中,`javax.net.ssl.HttpsURLConnection`类可以处理HTTPS连接,同时需要配置信任的证书和密钥。理解HTTPS的工作原理...

    计算机网络基础知识!!!!

    在互联网上,HTTP(Hypertext Transfer Protocol)是应用层的主要协议,用于浏览器和服务器之间的通信,而HTTPS(HTTP over Secure Socket Layer)是在HTTP基础上增加了SSL/TLS加密,用于保护用户数据的安全。...

    Python爬虫基础知识详解.zip

    1. **HTTP与HTTPS**:HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,HTTPS则是在HTTP基础上增加了SSL/TLS加密层,提供了数据传输的安全性。爬虫通常需要理解HTTP请求方法(GET、POST等)以及响应状态...

    第11章 网络开发基础.zip

    1. HTTPS(超文本传输安全协议)是在HTTP基础上加入SSL/TLS加密,提供数据传输的安全性。证书和公钥基础设施(PKI)是HTTPS安全的关键,确保了服务器身份的验证和数据的加密。 四、TCP与UDP 1. TCP是一种面向连接的...

    《c#网络应用编程基础》习题解答

    3. **HTTP与HTTPS**:HTTP是超文本传输协议,用于在Web上进行数据交换,而HTTPS是在HTTP基础上加入SSL/TLS安全协议,提供加密传输和身份认证,确保数据的安全性。掌握如何使用C#的HttpWebRequest和HttpWebResponse类...

    http权威指南和JavaScript权威指南6

    1. HTTP基础:包括HTTP方法(GET、POST、PUT、DELETE等),状态码及其含义,以及HTTP报文结构。 2. 请求与响应:解析请求头、响应头,理解Cookie、Session的使用,以及如何处理重定向和缓存。 3. 连接管理:了解持久...

    HTTP+Developer_s+Handbook+.pdf

    #### 三、HTTP基础知识 - **第1章:什么是HTTP?** - **HTTP的历史与目的:** 介绍了HTTP协议的发展历程及其在Web中的作用。 - **第2章:互联网与万维网** - **互联网概述:** 讨论了互联网的基本概念和技术。 ...

    JavaWeb程序设计入门课件HTTP协议共9页.pdf

    【描述】"JavaWeb程序设计入门课件HTTP协议共9页.pdf.zip" 指出这是一个压缩文件,其中包含9页关于HTTP协议的PDF文档,可能是详细讲解上述概念的课件,适合初学者快速掌握JavaWeb开发中的HTTP基础知识。 【标签】...

    编写简单的HTTP 1.0客户端/服务器程序:.编写多线程Web服务器:编写简单的RMI程序

    总结来说,这个实验涵盖了HTTP基础、多线程Web服务器的实现以及Java RMI的应用,这些都是构建复杂网络应用程序的基础。每个部分都至关重要,理解和掌握它们对于成为一名合格的IT专业人士至关重要。通过实践,你可以...

    python网络编程基础

    Python网络编程基础是入门Python网络应用开发的重要领域,它涵盖了从基本的网络概念到复杂的网络交互技术。在Python中,网络编程主要涉及TCP/IP协议、HTTP协议、套接字编程、Web服务API调用等多个方面。下面将详细...

    HTTP_2基础教程.pdf

    如今互联网发展日新月异,HTTP/1.1 协议已经难以承载日益复杂的网页内容,因此 HTTP/2 值得尝试。本书介绍了 HTTP/2 的设计初衷和新特性,对比了在不同网络环境下以及不同浏览器 上 HTTP/1.1 与 HTTP/2 的性能表现...

    简单的Http方式服务器与 android客户端的交互Demo

    总结,"简单的Http方式服务器与Android客户端的交互Demo"涵盖了HTTP基础,服务器端与Android客户端的通信机制,以及如何在实际应用中实现这一交互。通过理解和实践这些知识点,开发者能够创建功能完善的网络应用,...

Global site tag (gtag.js) - Google Analytics