111.网络编程-http
网络编程-http
- 简介
- 一个简单的请求-响应协议,它通常运行在TCP之上。
http内容
- 超文本
- 包含有超链接和各种多媒体元素标记的文本。这些超文本文件彼此链接,形成网状(web),能此被称为网页。
- 最常见的超文本格式是超文本标记语言HTML
- URL
- HTTP
- 超文本传输协议
- 一种按照URL指示,将超文本文档从一台主机(服务器)传输到另一台主机(浏览器)的应用层协议
http工作原理
- 请求/响应模型
- 本地浏览器分析超链接中的url
- 本地浏览器向DSN请求分析www.sxtyu.com的ip地址
- DNS将解析出的ip地址202.2.16.21返回浏览器
- 浏览器与服务器建立TCP链接,端口80
- 浏览器请求文档:get/index.html
- 服务器给出响应,将文档index.html发送给浏览器
- 释放TCP链接
- 浏览器显示index.html中的内容
- 链接方式
- 无状态性
- 同一个客户端,第二次访问同一WEB服务器上的页面时,服务器无法知道这个客户曾经访问过。
- HTTP的无状态性简化了服务器的设计,使其更容易支持大量并发的HTTP请求
http报文结构
请求报文
- 从客户端(浏览器)向web服务器发送的请求
- 报文的所有字段都时ASCII码
- 组成
- 请求行
- 方法 空格 url 空格 版本 CRLF(回车换行)
- 例: GET index.html HTTP/1.1
- 首部行
- 多行
- 首部字段名:空格 值 CRLF
- 例:Host: www.sxtyu.com
- CRLF
- 实体
返回报文
- 从web服务器到客户端的应答
- 报文的所有字段都时ASCII码
-组成
- 状态行
- 版本 空格 状态码 空格 短语 CRLF
- 例:HTTP/1.1 200 OK
- 首部行
- 多行
- 首部字段名: 空格 值 CRLF
- 例:Date: Web,08 May 2008 22
- CRLF
- 实体
请求报文中的方法
- 对所请求对象进行的操作,也就时命令
- GET 请求读取一个web页面
- HEAD 请求读取一个web页面的首部
- POST 附加一个命名资源
- PUT 请求存储一个web页面
- DELETE 删除一个web页面
- TRACE 用于测试,要求服务器送回收到的请求
- CONNECT 用于代理服务器
- OPTION 查询特定选项
响应报文中的状态码
- 响应报文状态行中包含的一个3为数字,指明特定的请求是否被满足,如果没有满足,原因时思慕
- 参考资料
状态码五类
| 状态码 |
含义 |
例子 |
| 1xx |
通知信息 |
100=服务器正在处理客户请求 |
| 2xx |
成功 |
200=请求成功(OK) |
| 3xx |
重定向 |
301=页面改变了位置 |
| 4xx |
客户错误 |
403=禁止的页面;404=页面未找到 |
| 5xx |
服务器错误 |
500=服务器内部错误;503=以后在试 |
首部字段或消息头
| 头 |
类型 |
说明 |
| User-Agent |
请求 |
关于浏览器和它平台的消息,如Mozilla5.0 |
| Accept |
请求 |
客户端能处理的页面的类型,如text/html |
| Accept-Charset |
请求 |
客户端可以接受的字符集,如unicode-1-1 |
| Accept-Encoding |
请求 |
客户端能处理的页面编码方式,如gzip |
| Accept-Language |
请求 |
客户端能处理的自然语言,如en(英语)、zh-en(简体中文) |
| Host |
请求 |
服务器的DNS名称,从URL中提取出来,必需 |
| Authorization |
请求 |
客户端的消息凭据列表 |
| Cookie |
请求 |
将以前设置的Cookie送回到服务器,可用来作为会话内容 |
| Date |
双向 |
消息发送时的日期和时间。 |
| Server |
响应 |
关于服务器的信息,如Microsoft-lls/6.0 |
| Content-Encoding |
响应 |
内容是如何编码的,如gzip |
| Content-Language |
响应 |
页面所使用的自然语言 |
| Content-length |
响应 |
以字节计算的页面长度 |
| Conten-Type |
响应 |
页面的MIME类型 |
| Last-Modified |
响应 |
页面最后被修改的时间和日期,在页面缓存机制中意义重大 |
| Location |
响应 |
指示客户端将请求发送给别处,即重新定向到另一个URL |
| Set-Cookie |
响应 |
服务器希望客户保存一个cookie |
http代理
- http代理又称web缓存或代理服务区,是一种网络实体,能代表浏览器发出http请求,并将最近的一些请求和响应暂存在本地磁盘中,当请求的web页面先前暂存过,则直接将暂存的页面发给客户端,无锡再次访问internet